Azure ポイント対サイト (P2S) 接続で使う証明書を作る

Azure の仮想ネットワークにポイント対サイト (P2S) 接続を試みた。
P2S 接続をするにはあらかじめ、Azure の仮想ネットワークにルート証明書をアップロードし、接続する PC ではクライアント証明書をインポートしておく必要がある。

封蠟

証明書といえば、シマンテック・ウェブサイトセキュリティ (旧 VeriSign) や GlobalSignComodo などの商用認証局で購入する印象がある。
しかし、Azure の P2S 接続で使う証明書に、これら商用認証局で購入したものを使うとセキュリティ的に大きな問題が生じる。
このためと思われるが、Azure の P2S 接続では、自己署名証明書、俗に言うオレオレ証明書を使うことが推奨されている。
自己署名証明書が推奨されている理由については、推測になるが改めて記事にする予定だ。

ここでは、Azure の P2S 接続で使うルート証明書とクライアント証明書を自己署名証明書として作成する手順を紹介する。

なお、Azure の仮想ネットワークの作成や、P2S 接続のゲートウェイの作成、ここで作成したルート証明書のアップロード、クライアント証明書のインポートなどは、多くの Web ページで紹介されているのと、Azure の管理 UI がまもなく変わりそうなので、ここでは省略する。

コマンドの入手

早速コマンドを実行するなりして証明書を作成したいところだが、残念なことに Windows には証明書を作成するコマンドが標準では含まれていない。

証明書を作成するコマンドは makecert.exe だ。
Visual Studio をインストールしていれば一緒にインストールされているはずだが、ほとんどの人はそんなものをインストールしていないだろう。
その場合は 開発者向けに提供されている Windows SDK を入手、インストールすればいい。
開発者向けということにはなっているが、別に開発者出なくても入手、使用は自由だ。

Windows SDK の入手と makecert.exe をインストールする具体的な手順は、以前の記事に書いたときからほとんど変わっていないのでそちらを参照して欲しい。
以前の記事を書いたときは Windows 8 だったため今ではもっと新しい Windows SDK が提供されている。
最新の Windows SDK は「Windows SDK アーカイブ(当時の Web ページは消滅。レイアウトは崩れるが Web アーカイブに痕跡あり) の Web ページにまとまっているので、その中から適切なバージョンの Windows SDK をダウンロードすればいい。

ルート証明書の作成

makecert.exe が使えるようになったら、Azure のポイント対サイト (P2S) 接続で必要になるルート証明書を自己署名証明書として作成する。
それには、以下のコマンドをコマンド プロンプト (どうやら管理者のコマンド プロンプトでなくても良さそう) で実行する。

作成された証明書はコマンドを実行したカレント フォルダーに RootCertificate.cer というファイル名で保存される。
Azure にアップロードするのは、この RootCertificate.cer ファイルだ。
アップロードの手順は、先も書いたがここでは省略する。

また、ルート証明書が証明書ストアに保存されていないと、クライアント証明書が作成できなかったため、makecert.exe を実行するときに -ss オプションに My パラメーターを指定して、個人証明書ストアにもルート証明書が保存されるようにしておく。

makecert.exe に -r オプションを指定して実行したことで、作成される証明書は自己署名証明書になる。
-n オプションの CN= で指定した文字列が、証明の対象の名前だ。
ここでは「SelfCertificateRoot」にしてみた。

クライアント証明書の作成

ルート証明書を作成したら、続いてクライアント証明書を作成する。

クライアント証明書を作成するには、コマンドプロンプトで以下のコマンドを実行する。
-is オプションには作成したルート証明書を保存した証明書ストアを、 -in オプションにはルート証明書を作成したときの CN= の値を指定する。

クライアント証明書は、 -ss オプションで指定した証明書ストアに作成される。
通常は -ss My として個人証明書ストアに保存する。
自己署名証明書のように、引数でファイル名を指定しての作成はできない。

-n オプションの CN= で指定した文字列が、証明の対象の名前だ。
クライアント証明書なのでクライアント PC の名前の意味になる。
ここでは「Client1」にしてみた。

先に書いたように、クライアント証明書は作成した PC の証明書ストアに保存される。
ポイント対サイト (P2S) 接続するのが、証明書を作成した PCであればそのままで良いが、別の PC で P2S 接続するなら、個人証明書ストアから .pfx ファイルにエクスポートして、実際の P2S 接続する PC でインポートしておく必要がある。
証明書ストアからの証明書のエクスポートと、別の PC でそれをインポートする手順は省略する。

関連記事

  • OpenSSL で Azure ポイント対サイト (P2S) の証明書を作る2015.7.13 (月) OpenSSL で Azure ポイント対サイト (P2S) の証明書を作る Azure に ポイント対サイト (P2S) 接続をする際に必要な、ルート証明書とクライアント証明書をWindows の makecert.exe […]
  • Azure ポイント対サイト (P2S) 接続が自己署名証明書な理由の推測2015.8.28 (金) Azure ポイント対サイト (P2S) 接続が自己署名証明書な理由の推測 先の記事で、Azure の仮想ネットワークにポイント対サイト (P2S) 接続するときに必要になる、ルート証明書とクライアント証明書の作り方を書いた。そこで Azure の P2S […]
  • Windows で作った自己署名証明書を調べる2015.7.10 (金) Windows で作った自己署名証明書を調べる Azure に ポイント対サイト (P2S) 接続をする際に必要な、ルート証明書とクライアント証明書をWindows の makecert.exe コマンドを使って作成する方法を前の記事で書いた。同じことを Linux の OpenSSL […]
  • Ubuntu 14.04 LTS を Azure に2015.6.4 (木) Ubuntu 14.04 LTS を Azure に ちょっと、備忘録。 Microsoft Azure に Ubuntu 14.04 LTS の仮想マシンを作ってみた。手順自体はググるなりビングるなりすればすぐに見つかるし、ポータルの UI の変更も多くあるので、あえてここには書かない。 […]

コメントを残す