こんにちは、上坂(@takashiuesaka)です。
前回は、管理ポータルを使ってVPNGatewayを作るとこまでの手順をご説明しました。おさらいしましょう。
- 仮想ネットワークを作る(OK)
- GatewaySubnetを作る(OK)
- パブリックIPアドレスを作る(OK)
- VPNGatewayを作る(OK)
(root証明書、クライアント証明書を作る) - クライアントプールをVPNGatewayに設定する(NG)
- root証明書をアップロード(NG)
- 接続用のEXEをダウンロードする(NG)
1から4の手順を実施済みです。残るは「5.クライアントプールをVPNGatewayに設定する」「6.root証明書のアップロード」なんですが、証明書を作っていない場合はこちらを参照して証明書の作成及びインストールをしておいてください。
https://azure.microsoft.com/ja-jp/documentation/articles/vpn-gateway-certificates-point-to-site/
さて、という訳でここから先は残念ながらPowerShellの出番です。
個人的に思うのですが、PowerShellを使うときはローカルのファイルにアクセスしつつAzureに対して何かする場合や処理を自動化したい時だけにしか使いたくないです。
それ以外の場合は全部管理ポータルでできるよう早くなってほしいですね。
・作業の前にちょっと確認してみる
PowerShell ISEを立ち上げて、まずは作成したVPNGatewayについての情報を取得してみてみましょう。
Get-AzureRmVirtualNetworkGateway -ResourceGroupName TestResource -Name nsuesaka-p2s
TestResouceは前回作成したVPNGatewayが所属するリソースグループ名です。
nsuesaka-p2sは前回作成したVPNGateway名です。それぞれご自分で指定した名前に変更してください。
何やらJSON形式の結果がずらずらと表示されると思いますが、注目はここです。
VpnClientConfigurationText : null
ポイント対サイトの設定が何も入っていません。ここに証明書の情報とクライアントプールの情報を設定してやればいいのです。
5.クライアントプールをVPNGatewayに設定する
VPNGatewayにはクライアントプール、つまりはクライアントが使用するアドレス空間を設定する必要があります。
クライアントプールに指定できるアドレス空間は「1.仮想ネットワークを作る」「2.GatewaySubnetを作る」で自分で指定したアドレス空間と重複できないことに注意してください。
私の場合は「192.168.1.0/24」にします。次のコマンドで設定します。
$gw = Get-AzureRmVirtualNetworkGateway -ResourceGroupName TestResource -Name nsuesaka-p2s
$clientpool = "192.168.1.0/24"
Set-AzureRmVirtualNetworkGatewayVpnClientConfig -VirtualNetworkGateway $gw -VpnClientAddressPool $clientpool
うまく設定できると、設定後のVPNGatewayの情報が表示されます。以下のようになったことを確認しましょう。
VpnClientConfigurationText : {
"VpnClientAddressPool": {
"AddressPrefixes": [
"192.168.1.0/24"
]
},
"VpnClientRevokedCertificates": [],
"VpnClientRootCertificates": []
}
いかにも後はroot証明書をアップロードすれば良いように見えますね!
6.root証明書をアップロード
Azureにroot証明書をアップロードするためには、証明書をBase64でエクスポートする必要があります。
certmgr.mscを使用します。スタートメニューをクリックしてから「certmgr.msc」と叩いて証明書管理画面を立ち上げてください。
あらかじめ作成しておいた(かつ、インストール済みの)root証明書を右クリック→すべてのタスク→エクスポートと選ぶとウィザードが立ち上がります。
途中の選択肢は次のようにしてください。
- 「いいえ、秘密鍵をエクスポートしません」
- 「Base64 encoded X.509」
最後に出力先を決めてでのエクスポートします。
エクスポートしたファイルをメモ帳で開き、BEGINからENDの間の改行を全部消して1行にしてから全部コピーしてください。
次のコマンドで、コピーした証明書アップロードします。
Add-AzureRmVpnClientRootCertificate `
-ResourceGroupName TestResource `
-VirtualNetworkGatewayName nsuesaka-p2s`
-VpnClientRootCertificateName TestRootCertificate `
-PublicCertData "{コピーしたBase64エンコード済みのroot証明書}"
VpnClientRootCertificateNameには作成したroot証明書名を入力してください。
また、Base64でエンコードした文字列は必ずダブルクォーテーションで囲みましょう。でないとほぼ間違いなくエラーになります。
7.接続用のEXEをダウンロードする
さぁ設定は全て終わりました。VPN接続するためのネットワーク接続インストーラーをダウンロードしましょう。これもPowerShellでコマンドを叩くことでダウンロードURLを得ることができます。
Get-AzureRmVpnClientPackage `
-ResourceGroupName TestResource `
-VirtualNetworkGatewayName nsuesaka-p2s `
-ProcessorArchitecture Amd64
ProcessorArchitectureオプションに指定できる値は Amd64 か X86 のどちらかです。
無事にダウンロードのURLが得られれば、後はブラウザでもコマンドでもお好きなツールを使ってインストーラーをダウンロードして、インストールするだけです。ここら先は今までと同じです。
お疲れさまでした!