前提
- 作業PCにPowershellインストール済み
- 対象AzurePortalにログイン済み
- SSL証明(pfx)を作成済み
最終的にうまくいったPowershellはこちら(上から順番に実施!)
①PasswordをSystem.Security.SecureString型に変換し変数に入れる
$pass = ConvertTo-SecureString "<任意のパスワード>" -AsPlainText -Force
例)$pass = ConvertTo-SecureString "SSLpassword123!" -AsPlainText -Force
②Application Gateway名をMicrosoft.Azure.Commands.Network.Models.PSApplicationGateway型に変換し変数に入れる
$AppGW = Get-AzureRmApplicationGateway -Name "<アプリケーションゲートウェイ名>" -ResourceGroupName "<アプリケーションゲートウェイのあるリソースグループ名>"
例)$AppGW = Get-AzureRmApplicationGateway -Name "AppGateway" -ResourceGroupName "Azure-Test"
③証明書をアップロードする
$Add-AzureRmApplicationGatewaySslCertificate -ApplicationGateway ②の変数名 -Name "<Portal上で表示されるSSL証明書名>" -Password ①の変数名 -CertificateFile <SSL証明書(拡張子がpfxのもの)のファイルパス(ローカルPC)>
例)$Add-AzureRmApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "HWS_Certificate2" -Password $pass -CertificateFile C:\Users\takahashi\Desktop\files\01.SSL\TEST_Certificate.pfx
作業時のエラー
①実行時のエラー("System.String" 型から "System.Security.SecureString" 型に変換できません。)
$Add-AzureRmApplicationGatewaySslCertificate -Name AppGateway -CertificateName TEST_Certificate2 -Password SSLpassword123! -CertificateFile C:\Users\takahashi\Desktop\files\01.SSL\TEST_Certificate.pfx
Add-AzureRmApplicationGatewaySslCertificate : パラメーター 'Password' をバインドできません。"SSLpassword123!" の値を "System.String" 型から"System.Security.SecureString" 型に変換できません。
発生場所 行:1 文字:110
+ ... eway -CertificateName TEST_Certificate -Password SSLpassword123! -Certif ...
+ ~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Add-AzureRmAppl...ySslCertificate]、ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Azure.Commands.Network.AddAzureApplicationGatewaySslCertificateCommand
解決策
ConvertTo-SecureStringコマンドで平文のパスワードを変換する
②実行時のエラー("System.String" 型から "Microsoft.Azure.Commands.Network.Models.PSApplicationGateway" 型に変換できません。)
$Add-AzureRmApplicationGatewaySslCertificate -ApplicationGateway "AppGateway" -Name "TEST_Certificate" -Password $pass -CertificateFile C:\Users\takahashi\Desktop\files\01.SSL\TEST_Certificate.pfx
Add-AzureRmApplicationGatewaySslCertificate : パラメーター 'ApplicationGateway' をバインドできません。"AppGateway" の 値を "System.String" 型から "Microsoft.Azure.Commands.Network.Models.PSApplicationGateway" 型に変換できません。
発生場所 行:1 文字:65
+ ... ionGatewaySslCertificate -ApplicationGateway "AppGateway" -Name " ...
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Add-AzureRmAppl...ySslCertificate]、ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Azure.Commands.Network.AddAzureApplicationGatewaySslCertificateCommand
解決策
ApplicationGateway名をPowershellで取得し変数に格納する