Azure App Service で TLS/SSL 証明書を追加および管理する
アプリケーションのコードで使うための、またはカスタム DNS 名をセキュリティで保護するためのデジタル セキュリティ証明書を、Azure App Service で追加できます。これにより、高度にスケーラブルでパッチを自動的に適用する Web ホスティング サービスが提供されます。 現在、トランスポート層セキュリティ (TLS) 証明書 (旧称 Secure Socket Layer (SSL) 証明書) とも呼ばれるプライベートまたはパブリック証明書は、ブラウザー、アクセスする Web サイト、および Web サイト サーバーの間で送信されるデータを暗号化することで、インターネット接続をセキュリティ保護するのに役立ちます。
次の表は、App Service で証明書を追加するためのオプションの一覧です。
オプション | 説明 |
---|---|
無料の App Service マネージド証明書を作成します。 | App Service でカスタム ドメインをセキュリティで保護することだけが必要な場合に、使いやすい無料のプライベート証明書。 |
App Service 証明書を購入する | Azure によって管理されるプライベート証明書。 自動証明書管理のシンプルさと、更新オプションとエクスポート オプションの柔軟性が組み合わされています。 |
Key Vault から証明書をインポートする | Azure Key Vault を使用して PKCS12 証明書を管理する場合に便利です。 「プライベート証明書の要件」を参照してください。 |
プライベート証明書のアップロード | 既にサードパーティ プロバイダーからのプライベート証明書がある場合は、それをアップロードすることができます。 「プライベート証明書の要件」を参照してください。 |
パブリック証明書のアップロード | パブリック証明書はカスタム ドメインのセキュリティ保護には使われませんが、リモート リソースにアクセスするために必要な場合は、コードに読み込むことができます。 |
注意
アプリにアップロードされた証明書は、App Service プランのリソース グループ、リージョン、オペレーティング システムの組み合わせ (内部的には "Web 空間" と呼ばれます) にバインドされたデプロイ ユニットに格納されます。 これにより、リソース グループとリージョンの組み合わせが同じである他のアプリが、証明書にアクセスできるようになります。
前提条件
プライベート証明書の場合、App Service のすべての要件を満たしていることを確認します。
無料の証明書のみ:
証明書が必要なドメインを App Service にマップします。 詳細については、「チュートリアル: 既存のカスタム DNS 名を Azure App Service にマップする」をご覧ください。
ルート ドメイン (contoso.com など) の場合、アプリに IP 制限が構成されていないことを確認します。 ルート ドメインの証明書の作成と定期的な更新は、インターネットからアプリにアクセスできるかどうかによって異なります。
プライベート証明書の要件
無料の App Service マネージド証明書と App Service 証明書は、App Service の要件を既に満たしています。 App Service にプライベート証明書をアップロードまたはインポートする場合、証明書は次の要件を満たしている必要があります。
- Triple DES を使用して暗号化され、パスワードで保護された PFX ファイルとしてエクスポートされている
- 少なくとも 2048 ビット長の秘密キーが含まれている
- 証明書チェーン内のすべての中間証明書およびルート証明書が含まれている。
TLS バインドでカスタム ドメインをセキュリティ保護する場合、証明書にさらに次の要件があります。
- サーバー認証用の拡張鍵使用が含まれている (OID = 1.3.6.1.5.5.7.3.1)
- 信頼された証明機関によって署名されている
Note
楕円曲線暗号 (ECC) 証明書 は、App Service で機能しますが、この記事では説明しません。 ECC 証明書を作成する正確な手順については、お使いの証明機関にお問い合わせください。
Web アプリの準備
カスタム TLS/SSL バインディングを作成したり、App Service アプリのクライアント証明書を有効にしたりするには、App Service プランが Basic、Standard、Premium、または Isolated のいずれかのレベルである必要があります。 Web アプリが、サポートされている価格レベルであることを確認するため、次の手順に従います。
Web アプリに移動する
Azure portal の検索ボックスで、[App Services] を検索して選択します。
[App Services] ページで、Web アプリの名前を選択します。
これで、Web アプリの管理ページが表示されます。
価格レベルの確認
Web アプリ ページの左側メニューの [設定] セクションで、[スケール アップ (App Service プラン)] を選択します。
Web アプリが、カスタム TLS/SSL をサポートしていない F1 または D1 レベルにないことを確認します。
スケール アップする必要がある場合は、次のセクションの手順に従います。 それ以外の場合は、[スケール アップ] ページを閉じて、「App Service プランのスケール アップ」セクションはスキップしてください。
App Service プランのスケール アップ
B1、B2、B3、運用カテゴリの他のレベルなど、非 Free レベルのいずれかを選びます。
終了したら、 [選択] を選択します。
次のメッセージが表示されたら、スケール操作が完了しています。
無料のマネージド証明書を作成する
無料 App Service マネージド証明書は、App Service でカスタム DNS 名をセキュリティで保護するためのターンキー ソリューションです。 この TLS/SSL サーバー証明書は、前提条件の設定が同じままである限り、App Service によって完全に管理され、継続的に有効期限の 45 日前に 6 か月単位で自動的に更新され、ユーザーは何も行う必要がありません。 関連付けられているすべてのバインドは、更新された証明書で更新されます。 証明書を作成してカスタム ドメインにバインドすると、残りは App Service によって実行されます。
重要
無料のマネージド証明書を作成する前に、アプリの前提条件を満たしていることを確認してください。
無料の証明書は DigiCert によって発行されます。 一部のドメインでは、CAA ドメイン レコードを 0 issue digicert.com
の値を使用して作成することによって、DigiCert を証明書の発行者として明示的に許可する必要があります。
証明書は Azure がユーザーに代わって完全に管理するため、ルート発行者を含むマネージド証明書のあらゆる側面をいつでも変更できます。 これらの変更をユーザーは制御できません。 マネージド証明書または証明書階層の任意の部分に対するハードな依存関係または実務証明書の "ピン留め" を行わないようにしてください。 証明書のピン留め動作が必要な場合、この記事の他の使用可能な方法を使用し、カスタム ドメインに証明書を追加します。
無料の証明書には以下の制限が伴います。
- ワイルドカード証明書はサポートされません。
- 証明書のサムプリントを使用したクライアント証明書としての使用はサポートされません。これは、非推奨で削除される予定です。
- プライベート DNS はサポートされません。
- エクスポートできません。
- App Service Environment (ASE) ではサポートされません。
- 英数字、ダッシュ (-)、ピリオド (.) のみがサポートされます。
- Web アプリの IP アドレスを指す A レコードが必要です。
- パブリックにアクセスできないアプリではサポートされません。
- Traffic Manager と統合されたルート ドメインではサポートされません。
- 証明書の発行と更新が正常に行われるには、上記のすべてが満たされている必要があります。
Azure portal の左側のメニューから、[App Services]><app-name> を選択します。
アプリのナビゲーション メニューで、[TLS/SSL の設定] を選びます。 開いたペインで、[秘密キー証明書 (.pfx)]>[App Service マネージド証明書の作成] を選びます。
無料の証明書のカスタム ドメインを選んで、[作成] を選びます。 サポートされているカスタム ドメインごとに証明書を 1 つだけ作成できます。
操作が完了すると、[秘密キー証明書] の一覧に証明書が表示されます。
この証明書を使ってカスタム ドメインをセキュリティ保護するには、証明書バインドを作成する必要があります。 「Azure App Service で TLS/SSL バインドを使用してカスタム DNS 名をセキュリティで保護する」の手順に従います。
App Service 証明書を購入してインポートする
Azure から App Service 証明書を購入する場合、Azure で次のタスクが管理されます。
- GoDaddy から購入プロセスを処理する。
- 証明書のドメイン検証を実行する。
- 証明書を Azure Key Vault に保持する。
- 証明書の更新を管理する。
- App Service アプリでインポートしたコピーと証明書を自動的に同期する。
App Service 証明書を購入するには、「証明書の注文を開始する」を参照してください。
注意
現在、App Service 証明書は Azure National Cloud ではサポートされていません。
既に使用中の App Service 証明書がある場合は、次のタスクを実行できます。
- App Service に証明書をインポートする。
- App Service 証明書を管理する (更新、キー更新、エクスポートなど)。
証明書の購入を開始する
App Service 証明書作成ページに移動して、App Service 証明書の購入を始めます。
注意
この記事に記載されているすべての価格は、あくまでも一例です。
Azure から購入した App Service 証明書は、GoDaddy によって発行されます。 一部のドメインでは、CAA ドメイン レコードを
0 issue godaddy.com
の値を使用して作成することによって、GoDaddy を証明書の発行者として明示的に許可する必要があります。証明書を構成するときは、次の表を参考にしてください。 完了したら [作成] を選択します。
設定 説明 サブスクリプション 証明書に関連付ける Azure サブスクリプション。 リソース グループ 証明書が格納されるリソース グループ。 新しいリソース グループを作成するか、App Service アプリと同じリソース グループを選択できます。 SKU 作成する証明書の種類 (標準証明書またはワイルドカード証明書) を決定します。 ネイキッド ドメインのホスト名 ルート ドメインを指定します。 発行された証明書によって、ルート ドメインと www
サブドメインの "両方" が保護されます。 発行される証明書において、[共通名] フィールドはルート ドメインを指定し、[サブジェクトの別名] フィールドはwww
ドメインを指定します。 任意のサブドメインのみをセキュリティ保護するには、サブドメインの完全修飾ドメイン名 を指定します (例:mysubdomain.contoso.com
)。証明書名 App Service 証明書のフレンドリ名。 自動更新の有効化 有効期限が切れる前に証明書を自動的に更新するかどうかを選びます。 更新するごとに証明書の有効期限が1年間延長され、料金はサブスクリプションに課金されます。
証明書を Azure Key Vault に格納する
Key Vault は、クラウド アプリケーションやサービスで使用される暗号化キーとシークレットを保護するための Azure サービスです。 App Service 証明書の場合、最適なストレージは Key Vault です。 証明書購入プロセスの完了後、この証明書を使い始める前に、さらにいくつかのステップを完了する必要があります。
App Service 証明書のページで証明書を選びます。 証明書のメニューで、[証明書の構成]>[手順 1: 格納] を選びます。
[キー コンテナーの状態] ページで、新しいコンテナーを作成するか、既存のコンテナーを選ぶには、[Key Vault リポジトリ] を選びます。
新しいコンテナーを作成する場合は、次の表に基づいてコンテナーを設定します。App Service アプリと同じサブスクリプションとリソース グループを必ず使ってください。 完了したら [作成] を選択します。
設定 説明 名前 英数字とダッシュだけを使用する一意の名前。 リソース グループ 推奨: App Service 証明書と同じリソース グループ。 場所 App Service アプリと同じ場所。 価格レベル 詳しくは、Azure Key Vault の価格の詳細に関するページをご覧ください。 アクセス ポリシー コンテナー リソースに対するアプリケーションと許可されるアクセス権を定義します。 これらのポリシーは、後で「Key Vault アクセス ポリシーを割り当てる」の手順に従って設定できます。 現在、App Service 証明書でサポートされているのは Key Vault のアクセス ポリシーのみであり、RBAC モデルはサポートされていません。 仮想ネットワーク アクセス 特定の Azure 仮想ネットワークへのコンテナー アクセスを制限します。 この制限は、後で「Azure Key Vault のファイアウォールと仮想ネットワークを構成する」の手順に従って設定できます。 コンテナーを選んだ後、[Key Vault リポジトリ] ページを閉じます。 [手順 1: 格納] オプションに、成功を示す緑色のチェック マークが表示されます。 次の手順のためにページは開いたままにしておきます。
ドメインの所有権を確認する
前のセクションと同じ [証明書の構成] ページから、[手順 2: 確認] を選びます。
[App Service の確認] を選択します。 ただし、前に前提条件に従ってドメインを Web アプリにマップしたため、ドメインは既に検証されています。 このステップを完了するには、[確認] を選び、[証明書はドメイン確認済みです] というメッセージが表示されるまで [最新の情報に更新] を選びます。
次のドメイン検証方法がサポートされています。
メソッド | 説明 |
---|---|
App Service | ドメインが同じサブスクリプションの App Service アプリに既にマップされている場合は、App Service アプリでドメインの所有権が既に確認されているため、最も便利なオプションです。 「ドメインの所有権を確認する」の最後のステップをご覧ください。 |
ドメイン | Azure から購入した App Service ドメインを確認します。 Azure は確認 TXT レコードを自動的に追加し、プロセスを完了します。 |
メール | ドメイン管理者にメールを送信することによってドメインを確認します。 手順は、オプションを選択したときに提供されます。 |
手動 | DNS TXT レコードまたは HTML ページを使ってドメインを確認します。これは、次の注に従う標準証明書にのみ適用されます。 この手順は、オプションを選択した後に提供されます。 HTML ページのオプションは、"HTTPS のみ" が有効になっている Web アプリでは機能しません。 |
重要
標準証明書の場合、要求した最上位のドメインと "共に" www
サブドメイン (contoso.com
、www.contoso.com
など) の証明書が、証明書プロバイダーから提供されます。 ただし、2021 年 12 月 1 日以降は、App Service と手動による確認方法に制限が導入されます。 ドメインの所有権を確認するには、どちらも HTML ページの検証を使います。 この方法では、証明書プロバイダーは、証明書を発行、キー更新、更新するときに、www
サブドメインを含めることができません。
一方、ドメインとメールによる確認方法では、引き続き、要求された最上位のドメインと共に www
サブドメインが証明書に含まれます。
App Service に証明書をインポートする
Azure portal の左側のメニューから、[App Services]><app-name> を選択します。
アプリのナビゲーション メニューから、[TLS/SSL の設定]>[秘密キー証明書 (.pfx)]>[App Service 証明書のインポート] を選びます。
購入した証明書を選んでから、[OK] を選びます。
操作が完了すると、[秘密キー証明書] の一覧に証明書が表示されます。
この証明書を使ってカスタム ドメインをセキュリティ保護するには、証明書バインドを作成する必要があります。 「Azure App Service で TLS/SSL バインドを使用してカスタム DNS 名をセキュリティで保護する」の手順に従います。
Key Vault から証明書をインポートする
Azure Key Vault を使用して証明書を管理していて、要件を満たしている場合、Key Vault から App Service に PKCS12 証明書をインポートできます。
Key Vault から読み取る権限を App Service に与える
既定では、App Service リソース プロバイダーはキー コンテナーにアクセスできません。 証明書のデプロイにキー コンテナーを使うには、キー コンテナーに対する読み取りアクセスをリソース プロバイダーに認可する必要があります。
注意
現在、Key Vault 証明書でサポートされているのは Key Vault アクセス ポリシーのみであり、RBAC モデルはサポートされていません。
リソース プロバイダー | サービス プリンシパルの AppId | Key Vault シークレットのアクセス許可 | Key Vault 証明書のアクセス許可 |
---|---|---|---|
Microsoft Azure App Service または Microsoft.Azure.WebSites | - abfa0a7c-a6b6-4736-8310-5855508787cd (すべての Azure サブスクリプションで同じ)- Azure Government クラウド環境では、 6a02c803-dafd-4136-b4c3-5a6f318b4714 を使います。 |
取得 | 取得 |
Microsoft.Azure.CertificateRegistration | 取得 List オン 削除 |
取得 List |
Key Vault からアプリに証明書をインポートする
Azure portal の左側のメニューで、[App Services]><アプリ名> を選びます。
アプリのナビゲーション メニューから、[TLS/SSL の設定]>[秘密キー証明書 (.pfx)]>[Key Vault 証明書のインポート] を選びます。
証明書を選ぶときは、次の表を参考にしてください。
設定 説明 サブスクリプション キー コンテナーに関連付けられているサブスクリプション。 Key Vault インポートする証明書があるキー コンテナー。 [証明書] この一覧から、コンテナー内にある PKCS12 証明書を選びます。 コンテナー内のすべての PKCS12 証明書がその拇印と共に一覧表示されますが、App Service ですべてがサポートされているわけではありません。 操作が完了すると、[秘密キー証明書] の一覧に証明書が表示されます。 インポートがエラーで失敗する場合は、証明書が App Service の要件を満たしていません。
Note
Key Vault の証明書を新しい証明書で更新する場合、App Service によって証明書が 24 時間以内に自動的に同期されます。
この証明書を使ってカスタム ドメインをセキュリティ保護するには、証明書バインドを作成する必要があります。 「Azure App Service で TLS/SSL バインドを使用してカスタム DNS 名をセキュリティで保護する」の手順に従います。
プライベート証明書のアップロード
証明書プロバイダーから証明書を取得したら、このセクションの手順に従って、App Service 用に証明書を準備します。
中間証明書を結合する
証明機関から証明書チェーンで複数の証明書を提供されている場合は、それらの証明書を同じ順序でマージする必要があります。
テキスト エディターで、受け取った各証明書を開きます。
マージした証明書を格納するには、mergedcertificate.crt という名前のファイルを作成します。
各証明書の内容をこのファイルにコピーします。 証明書チェーンで指定されている証明書のシーケンス (自分の証明書で始まり、ルート証明書で終わるもの) に従ってください。次はその例です。
-----BEGIN CERTIFICATE----- <your entire Base64 encoded SSL certificate> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <The entire Base64 encoded intermediate certificate 1> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <The entire Base64 encoded intermediate certificate 2> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <The entire Base64 encoded root certificate> -----END CERTIFICATE-----
マージされたプライベート証明書を PFX にエクスポートする
次に、マージされた TLS/SSL 証明書を、証明書要求の生成に使われた秘密キーと共にエクスポートします。 OpenSSL を使って証明書の要求を生成した場合、秘密キー ファイルが作成されています。
Note
OpenSSL v3 では、X.509 仕様で許可されているように、20 オクテット (40 文字) の証明書シリアルが作成されます。 現在、証明書 PFX ファイルをアップロードする場合、10 オクテット (20 文字) のみサポートされています。 OpenSSL v3 では、既定の暗号も 3DES から AES256 に変更されましたが、これはコマンド ラインでオーバーライドできます。 OpenSSL v1 は既定で 3DES を使用し、シリアルでは 8 オクテット (16 文字) しか使用しないため、生成された PFX ファイルは特別な変更なしでサポートされます。
証明書を PFX ファイルにエクスポートするには、次のコマンドを実行します。ただし、プレースホルダー <private-key-file> と<merged-certificate-file> を、秘密キーへのパスと、マージした証明書ファイルに置き換えます。
openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>
求められたら、エクスポート操作のパスワードを指定します。 後で TLS/SSL 証明書を App Service にアップロードするとき、このパスワードを指定する必要があります。
IIS または Certreq.exe を使って証明書の要求を生成した場合は、ローカル コンピューターに証明書をインストールした後で、証明書を PFX ファイルにエクスポートします。
証明書を App Service にアップロードする
これで、証明書を App Service にアップロードする準備ができました。
Azure portal の左側のメニューから、[App Services]><app-name> を選択します。
アプリのナビゲーション メニューから、[TLS/SSL の設定]>[秘密キー証明書 (.pfx)]>[証明書のアップロード] を選びます。
[PFX 証明書ファイル] で、PFX ファイルを選択します。 [証明書のパスワード] で、PFX ファイルをエクスポートするときに作成したパスワードを入力します。 終わったら、[アップロード] を選びます。
操作が完了すると、[秘密キー証明書] の一覧に証明書が表示されます。
この証明書を使ってカスタム ドメインをセキュリティ保護するには、証明書バインドを作成する必要があります。 「Azure App Service で TLS/SSL バインドを使用してカスタム DNS 名をセキュリティで保護する」の手順に従います。
パブリック証明書のアップロード
公開証明書は、 .cer 形式でサポートされています。
Azure portal の左側のメニューから、[App Services]><app-name> を選択します。
アプリのナビゲーション メニューで、[TLS/SSL 設定]>[公開証明書 (.cer)]>[公開キー証明書のアップロード] を選びます。
[名前] に、証明書の名前を入力します。 [CER 証明書ファイル] で、目的の CER ファイルを選択します。 終わったら、[アップロード] を選びます。
証明書がアップロードされたら、証明書のサムプリントをコピーし、「証明書をアクセス可能にする」を確認します。
有効期限が近づいている証明書を更新する
証明書の有効期限が切れる前に、更新された証明書を App Service に追加し、プロセスが証明書の種類に依存しているすべての TLS/SSL バインドを更新してください。 たとえば、Key Vault からインポートされた証明書 (App Service 証明書など) は、自動的に 24 時間ごとに App Service に同期され、証明書を更新すると TLS/SSL バインドが更新されます。 アップロードされた証明書の場合は、バインドは自動更新されません。 シナリオに基づいて、対応するセクションを確認します。
アップロードされた証明書を更新する
期限が切れる証明書を置き換えるとき、新しい証明書で証明書バインドを更新する方法によっては、ユーザー エクスペリエンスに悪影響を及ぼす可能性があります。 たとえば、バインドを削除すると、そのバインドが IP ベースであっても、インバウンド IP アドレスが変化することがあります。 IP ベースのバインドに既に存在する証明書を更新するときには、この結果による影響が特に大きくなります。 アプリの IP アドレスが変わらないようにし、HTTPS エラーによるアプリのダウンタイムを避けるには、次の手順で指定されている順序のとおりにしてください。
既存の有効期限が近づいている証明書を削除せずに、新しい証明書を同じカスタム ドメインにバインドします。 このタスクを行うには、App Service アプリの TLS/SSL 設定ペインに移動し、[バインディングの追加] を選びます。
この操作により、既存の証明書バインドが削除されることなく、バインドが置き換えられます。
既存の証明書を削除します。
App Service 証明書を更新する
既定では、App Service 証明書の有効期間は 1 年です。 有効期限が近づいたら、自動または手動により App Service 証明書を 1 年単位で更新できます。 実質的に、証明書更新プロセスによって新しい App Service 証明書が提供され、有効期限が既存の証明書の有効期限から 1 年間延長されます。
注意
2021 年 9月 23 日以降、過去 395 日間にドメインを確認していない場合は、App Service 証明書の更新またはキー更新のプロセスの間にドメインを確認する必要があります。 新しい証明書のオーダーは、ドメインの確認が完了するまで、更新またはキー更新プロセスの間 "発行保留中" モードのままになります。
App Service マネージド証明書とは異なり、App Service 証明書のドメインの再確認は自動化 "されません"。 ドメインの所有権を確認しないと、更新が失敗します。 App Service 証明書を確認する方法について詳しくは、「ドメインの所有権を確認する」をご覧ください。
更新プロセスでは、App Service の既知のサービス プリンシパルがキー コンテナーに対して必要なアクセス許可を持っている必要があります。 これらのアクセス許可は、Azure portal を使って App Service 証明書をインポートするときに自動的に設定されます。 お使いのキー コンテナーからこれらのアクセス許可を削除しないようにしてください。
App Service 証明書の自動更新設定を変更するには、App Service 証明書のページで証明書を選びます。
左側のメニューで、[自動更新の設定] を選びます。
[オン] または [オフ] を選んで、[保存] を選びます。
自動更新をオンにすると、証明書は有効期限の 32 日前に自動更新を開始できます。
証明書を手動で更新するには、[手動更新] を選びます。 有効期限の 60 日前に、証明書の手動更新を要求できます。
更新操作が完了したら、[同期] を選びます。
同期操作によって、アプリにダウンタイムを発生させることなく、App Service 内の証明書に対するホスト名のバインドが自動的に更新されます。
注意
[同期] を選ばないと、証明書は 24 時間以内に App Service によって自動的に同期されます。
Key Vault からインポートされた証明書を更新する
Key Vault から App Service にインポートした証明書を更新するには、「Azure Key Vault の証明書の更新」をご覧ください。
キー コンテナー内で証明書が更新された後、App Service は新しい証明書を自動的に同期し、該当する TLS/SSL バインドを 24 時間以内に更新します。 手動で同期するには、次の手順のようにします。
アプリの [TLS/SSL の設定] ページに移動します。
[秘密キー証明書] で、インポートした証明書を選んで、[同期] を選びます。
App Service 証明書を管理する
このセクションには、購入した App Service 証明書を管理するのに役立つタスクへのリンクが含まれています。
App Service 証明書をキー更新する
証明書の秘密キーが侵害されたと思われる場合は、証明書のキー更新を実行できます。 これを行うと、証明書と証明機関から発行された新しいキーが展開されます。
App Service 証明書のページで証明書を選びます。 左側のメニューから [キー更新と同期] を選びます。
プロセスを始めるには、[キー更新] を選びます。 処理が完了するまでに 1 ~ 10 分かかることがあります。
ドメインの所有権の再確認が必要になる場合もあります。
キー更新操作が完了したら、[同期] を選びます。
同期操作によって、アプリにダウンタイムを発生させることなく、App Service 内の証明書に対するホスト名のバインドが自動的に更新されます。
注意
[同期] を選ばないと、証明書は 24 時間以内に App Service によって自動的に同期されます。
App Service 証明書をエクスポートする
App Service 証明書は Key Vault シークレットであるため、コピーを PFX ファイルとしてエクスポートし、他の Azure サービスまたは Azure の外部で使うことができます。
重要
エクスポートされた証明書はアンマネージド成果物です。 App Service 証明書が更新されるとき、そのような成果物は App Service によって同期されません。 必要に応じて、更新された証明書をエクスポートしてインストールする必要があります。
App Service 証明書のページで証明書を選びます。
左側のメニューで、[証明書のエクスポート] を選びます。
[Key Vault で開く] を選択します。
証明書の現在のバージョンを選びます。
[証明書としてダウンロード] を選択します。
ダウンロードした PFX ファイルは、公開証明書とプライベート証明書の両方を含む未加工の PKCS12 ファイルであり、インポート パスワードは空の文字列です。 パスワード フィールドを空のままにすることで、ファイルをローカル環境にインストールできます。 ファイルはパスワードで保護されていないため、ファイルをそのまま App Service にアップロードすることはできません。
App Service 証明書を削除する
App Service 証明書を削除する場合、削除操作を元に戻すことはできません。 その結果、証明書は取り消され、この証明書を使用する App Service 内のすべてのバインドが無効になります。
誤って削除されないようにするため、App Service 証明書には Azure によってロックが設定されます。 そのため、証明書を削除するには、最初に証明書の削除ロックを解除する必要があります。
App Service 証明書のページで証明書を選びます。
左側のメニューで、[ロック] を選びます。
証明書で、[削除] という名前のロックの種類を持つロックを見つけます。 右側で [削除] を選びます。
これで、App Service 証明書を削除できるようになります。 左側のメニューから、[概要]>[削除] を選びます。
確認ボックスが開いたら、証明書名を入力して、[OK] を選びます。
スクリプトで自動化する
Azure CLI
カスタム TLS/SSL 証明書を Web アプリにバインドする
PowerShell
$fqdn="<Replace with your custom domain name>"
$pfxPath="<Replace with path to your .PFX file>"
$pfxPassword="<Replace with your .PFX password>"
$webappname="mywebapp$(Get-Random)"
$location="West Europe"
# Create a resource group.
New-AzResourceGroup -Name $webappname -Location $location
# Create an App Service plan in Free tier.
New-AzAppServicePlan -Name $webappname -Location $location `
-ResourceGroupName $webappname -Tier Free
# Create a web app.
$webapp = New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName $webappname
Write-Host "Sign in to your domain provider's website and configure the following records:"
Write-Host "A CNAME record that maps $fqdn to $webappname.azurewebsites.net"
Write-Host "A TXT record that maps asuid.$fqdn to the domain verification ID $($webapp.CustomDomainVerificationId)"
Read-Host "Press [Enter] key when ready ..."
# Before continuing, go to your DNS configuration UI for your custom domain and follow the
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the
# hostname "www" and point it your web app's default domain name.
# Upgrade App Service plan to Basic tier (minimum required by custom SSL certificates)
Set-AzAppServicePlan -Name $webappname -ResourceGroupName $webappname `
-Tier Basic
# Add a custom domain name to the web app.
Set-AzWebApp -Name $webappname -ResourceGroupName $webappname `
-HostNames @($fqdn,"$webappname.azurewebsites.net")
# Upload and bind the SSL certificate to the web app.
New-AzWebAppSSLBinding -WebAppName $webappname -ResourceGroupName $webappname -Name $fqdn `
-CertificateFilePath $pfxPath -CertificatePassword $pfxPassword -SslState SniEnabled