KeyVaultで証明書をインポートして証明書共有コンテナとして、ApplicationGatewayのHTTPSリスナーやAPIManagementカスタムドメイン等の各リソースで使用したい場合の更新手順について。
手順
- AzurePortal上で、[キー コンテナー]-[証明書]をクリック
- 表示されている証明書で更新対象の証明書をクリックする
- [+ 新しいバージョン]をクリックする
- 下記の通り入力して、[作成]をクリックする
証明書の作成方法:「インポート」
証明書ファイルのアップロード:pfxファイル
パスワード:証明書(pfx)作成時指定したパスワード
更新後
手順としては上記を実施するだけだが、ApplicationGatewayとAPIManagementで証明書更新の確認を行うものの、待てど暮らせど更新されない。
4時間待つ
ApplicationGW
インスタンスによって Key Vault が 4 時間間隔でポーリングされ、証明書の更新バージョン (存在する場合) が取得されます。 更新された証明書が検出されると、HTTPS リスナーに現在関連付けられている TLS または SSL 証明書が自動的にローテーションされます。
APIManagement
キー コンテナーで更新された証明書は、API Management で自動的にローテーションされます。 キー コンテナー内で更新が行われると、4 時間以内に API Management 内の証明書が更新されます。 また、Azure portal または管理 REST API を使用して、証明書を手動で更新することもできます。
4時間経ったら確認できた。
ドキュメントちゃんと読もう(n回目)
APIManagementの場合は、登録したホスト名と、新しいバージョンのCNが一致しないと更新がエラーになる。
いや、4時間待たない
ApplicationGW
即時反映させるためには、ApplicationGWに対して何かしらの設定変更を行うと反映される。適当な正常性プローブを作成して削除、でOK。
参考:Azure Application Gatewayのリスナー証明書を自動で更新する
API Management
新しいバージョンの証明書をKeyVaultに登録してから少しの時間待つと、AzurePortal上からカスタムドメインの証明書設定で、新しいバージョンの証明書を選べるようになっているので、選択して更新する。
サービスへの証明書の適用には、15分ほど時間がかかる。
[Azure ポータルを使用してカスタム ドメイン名を設定する]
(https://docs.microsoft.com/ja-jp/azure/api-management/configure-custom-domain#use-the-azure-portal-to-set-a-custom-domain-name)
証明書を割り当てる処理は、デプロイのサイズによっては、15 分以上かかる場合があります。 Developer SKU にはダウンタイムがありますが、Basic 以上の SKU にはダウンタイムがありません。