移転しました。

約3秒後に自動的にリダイレクトします。

AzureのApplicationGatewayにAppServiceの証明書を使う方法

あけおめ、年末は積みゲー消化のために、対馬を救いながら、稲作していたら、終わってしまいました、id:gaoohです。 近未来でサイボーグで戦いたいのに、まだ手が回らない。

本題です。 年末、AzureのApplicationGatewayにAppServiceの証明書を適用するのではまったのでブログにまとめます。

手順

前提としてAppServiceの証明書は発行して利用できる状態であるとします。

まずApplicationGatewayがKeyVaultの証明書を取得できるように、証明書の参照権限をもった User Assigned Managed Identity IDを発行し紐づけます。 その上でApplicationGatewayで利用する証明書を登録という手順が必要です。

1. ApplicationGateway に User Assigned Managed Identity ID を発行

f:id:gaooh:20210104221343p:plain

2. 発行した User Assigned Managed Identity ID に 証明書の参照権限を付与

f:id:gaooh:20210104221237p:plain

3. ApplicationGatewayで利用する証明書を登録

これは 2020/12 月の段階ではWebUIは用意されていないのでコマンドで

az network application-gateway ssl-cert create --gateway-name "#{gateway-name}" \
  --resource-group "#{resource-group-name}" -n #{sslname} 
  --key-vault-secret-id "https://#{key-vaultname}.vault.azure.net/secrets/****"

PowerShellがお好みだったらこっちを参考 docs.microsoft.com

以上を行うとリスナー作成時の証明書の選択肢に該当の証明書が選べるようになります。

ハマったポイント

以前はこのコマンドもなかったのか、証明書を一度エクスポートしてApplicationGatewayに登録するという方法が取られていて、ぐぐるとその方法が出てくる。 なんならWebコンソールだけ見ているとそれしか方法がないように思える。

f:id:gaooh:20210104221241p:plain

「そうかエクスポートするのか」と思い、うっかりこの方法で行ってしまった。

ちなみに一応できたんのだが、PowerShellで証明書をエクスポートすると中間証明書がないものがエクスポートされるので、うっかりそれを設定してしまったのです。 中間証明書ってなくてもブラウザで確認するだけだと気がつかなくて、気がつくのが遅れたという二重の罠にもハマりました。

この方法だと証明書の更新の際に作業が必要なので、ApplicationGatewayの利用をしたいだけなら今は利用すべきじゃないので、当初書いた手順が正しい。

いじょ。