はじめに
Azure CDN のカスタムドメインに、マネージドされた証明書ではなく自分で発行した証明書を適用することも可能です。
そこでLet's Encryptで発行された証明書を利用する方法を確認していきます。
すでにCDNにストレージアカウントがエンドポイントとして登録されていることが前提です。
-
Azure CDNでストレージアカウントのコンテンツをキャッシュする - 技術的な何か。
はじめに Azure CDN でコンテンツをキャッシュします。ストレージアカウントを配信元に設定しコンテンツをキャッシュします。 CDNの設定 ストレージアカウントは作成されていることが前提です。 ま
level69.net
また、事前にLet's Encrypt証明書は発行されていることが必要です。証明書はpfx形式に変換しておきます。
設定
自分で発行した証明書の設定はStandard Akamaiでは行えないので注意が必要です。
Verizonで行います。
Key Vaultの作成
証明書を保存するためのキーコンテナーを作成します。
事前に作成したLet's Encrypt証明書をインポートします。
pfx形式に変換した証明書をインポートします。
CDNの確認
カスタムドメインを事前に割り当ておきます。
適用後にHTTPSをオンにします。
ここで、CDNがKey Vaultにアクセスできるように設定する必要があります。
コマンドは、表示されるのでコピーして利用します。
表示されているコマンドを実行しサービスプリンシパルを作成します。
PS C:\Users\user1> New-AzADServicePrincipal -ApplicationId "205478c0-bd83-4e1b-a9d6-db63a3e1e1c8" DisplayName Id AppId ----------- -- ----- Microsoft.AzureFrontDoor-Cdn xxxxxxxx-324d-4951-9200-e00f678c8d33 205478c0-bd83-4e1b-a9d6-db63a3e1e1c8
205478c0-bd83-4e1b-a9d6-db63a3e1e1c8 はMicrosoft.AzureFrontdoor-Cdnを指します。アカウントによらず全て同じ値です。
アクセスポリシーの追加
Key Vaultのアクセスポリシーを追加します。
証明書のアクセス許可は取得を選択します。シークレットも取得を選択します。
プリンシパルは205478c0-bd83-4e1b-a9d6-db63a3e1e1c8を入力します。全部入力しないと出てこないです。
CDNの設定
保存します。
伝播するまで時間を置きます。確認後にアクセスして確認します。
6時間程度以上かかることを想定した方が良いと思います。証明書の期限切れの更新は気づいた後に行ってしまうと直ぐには反映されないので気を付けなければなりません。
Let's Encryptの証明書が適用されていることが分かります。
まとめ
CDNの独自証明書の適用にはCLIによるサービスプリンシパルの発行が必要となります。また、リードタイムが長いので余裕をもって作業が必要となる事に注意が必要です。