Azure Web App (App Service)に Let's Encrypt で発行した証明書を適用する方法
ご挨拶
最近盛り上がりを見せてきている Azure ですが、まだまだ欲しい情報にたどり着きにくいのが現状です。 Azure を利用している人に少しでも役に立てればと思います。
今回は旧ポータルを使わずに適用する方法が見当たらなかった、 現ポータルを利用して Web App (App Service)に Let's Encrypt で発行した証明書を適用する方法を紹介します。
以下前提条件
- ある程度 Azure での作業に慣れている人を対象にしています。App Service, Let's Encrypt 等の詳細には触れません。
- 基本テキストベースの作業メモです。わかりにくい等あればご指摘頂けると幸いです。
- Azure ポータルの言語設定は英語です。
- クリーンな状態から設定完了までの想定しているため、適宜読み飛ばして下さい。
- 設定項目の値は適当です。環境に合わせて補完して下さい。
Azure Active DIrectory (プリンシパル) の作成
設定項目 | 内容 |
---|---|
Name | myservice-ad-app |
Application Type | Web app / API |
Sign-on URL | http://your-domain |
Azure Active Directory の設定画面より App registrations を選択し、 Application 登録をして下さい。
myservice-ad-app の設定
設定項目 | 内容 |
---|---|
Key description | Let's Encrypt |
Duration | Never expires |
Value | myservice-ad-app-key ※ |
先程作成しした myservice-ad-app の設定画面より、 Key の登録をして下さい。
※ Save 後一度だけ表示されます。忘れずにメモして下さい。 ※ 忘れた際は key を作り直して下さい。
Resource group の作成
設定項目 | 内容 |
---|---|
Resource group name | myservice-resource-group |
- Resource group を作成して下さい。
- これ以降利用する Azure のサービスは、特に言及がない限りここで作成する Resource group / location に作成下さい。
myservice-resource-group の設定
設定項目 | 内容 |
---|---|
Select a role | Contributor |
Add users | myservice-ad-app |
Resource group の設定画面より、 Access control (IAM) の追加をして下さい。
Web App の作成
設定項目 | 内容 |
---|---|
App name | myservice-web-app |
Resouce Group | myservice-resource-group |
myservice-web-app の設定
カスタムドメイン設定
設定項目 | 内容 |
---|---|
Hostname | myservice.your-domain |
設定画面の Custom domains から利用するホストの登録をして下さい。 ※ ドメインのネームサーバーへ CNAME レコードを追加する必要があります。 ※ ex) myservice.your-domain. 3600 IN CNAME myservice-web-app.azurewebsites.net
Let's Encrypt 拡張機能導入
設定項目 | 内容 |
---|---|
Choose Extension | Azure Let's Encrypt (x64) |
設定画面の Extensions より、 Azure Let's Encrypt (x86) もしくは Azure Let's Encrypt (x64)を導入。
※ 32bit or 64bit は設定画面の Application Settings より確認・変更出来ます。
Azure Let's Encrypt の設定
設定項目 | 内容 |
---|---|
Tenant | XXXX.onmicrosoft.com と言った名前 (Azure Active Directory の Domains から確認できます) |
SubscriptionId | SubscriptionID (Subscriptions 設定画面より確認出来ます) |
ClientId | myservice-ad-app の ApplicationID (設定画面より確認できます) |
ClientSecret | myservice-ad-app-key |
ResourceGroupName | myservice-resource-group |
ServicePlanResourceGroupName | myservice-resource-group |
UseIPBasedSSL | disable |
SiteSlotName | - |
Update Application Settings | enable |
App Service 設定の Extensions から Azure Let's Encrypt を選択し、 展開される画面左上の Browse から設定出来ます。 上記項目の入力さえ終わればあとはすんなり設定できると思います。
つまりどころ
- http://your-domain/.well-known/acme-challenge/ へアクセスが出来ないと登録に失敗します。web.config 等を設定している場合、適切にアクセス出来るよう調整して下さい。
動作確認
https://your-domain でアクセスし表示できれば完了です。 快適な Azure Life を!