少しばかりハマったので備忘メモなのですが、これは2016/02/19 時点での情報です。数週間前の情報が既に古くなってしまうAzureの宿命でしょう。
Azure ARM PowerShellのバージョンは、1.0.4 です(Get-Moduleによる)
前提として、
- 現在のNewポータルでは、P2Sを構成できないので、PowerShellでの操作が必要
- そのためには証明書を作成しUploadする必要がある。
- 既存のVPNゲートウェイは作成済み
ですぐにポータルで操作可能になるようなキがします。
チュートリアル的には以下のドキュメントです(分かり難いのですが) azure.microsoft.com
そして、はまりどころな話としては、おおよそ以下と同じです。既に一部コマンドで引数が古くなってたりしますが。
ARM環境で P2S VPN を構築する – MSKK Cloud OS Tech Blog
結局は、makecertで作成した証明書をBASE64形式でエクスポートしておく必要がありますというのと
Add-AzureRmVpnClientRootCertificate
で例示されているサンプル
$Text = Get-Content -Path "C:\Azure\Certificates\ExportedCertficate.cer" $CertificateText = for ($i=1; $i -lt $Text.Length -1 ; $i++){$Text[$i]}
では改行が入ってしまって、うまく動きませんという話です。
いちいち、BASE64形式で再エクスポートするのは面倒なので、
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes($cerfilename))
とかで直接BASE64化しても問題ないと思います。
$base64 = [Convert]::ToBase64String([System.IO.File]::ReadAllBytes($cerfilename)) Add-AzureRmVpnClientRootCertificate ` -ResourceGroupName some-resource-group ` -VirtualNetworkGatewayName some-gw-name ` -VpnClientRootCertificateName "RootCertificate" ` -PublicCertData $base64
削除は、
$cer = Get-AzureRmVpnClientRootCertificate ` -ResourceGroupName some-resource-group ` -VirtualNetworkGatewayName some-gw-name ` -VpnClientRootCertificateName "RootCertificate" Remove-AzureRmVpnClientRootCertificate ` -ResourceGroupName some-resource-group ` -VirtualNetworkGatewayName some-gw-name ` -VpnClientRootCertificateName "RootCertificate" -PublicCertData $cert.PublicCertData
以上