既存のカスタム ドメインを Azure Spring Apps にマップする

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象: ✔️ Java ✔️ C#

この記事の適用対象: ✔️ Standard ✔️ Enterprise

ドメイン ネーム サービス (DNS) は、ネットワーク全体のネットワーク ノード名を格納するための手法です。 この記事では、CNAME レコードを使用して、www.contoso.com などのドメインをマップします。 証明書を使用してカスタム ドメインをセキュリティで保護し、トランスポート層セキュリティ (TLS。Secure Sockets Layer (SSL) とも呼ばれます) を強制する方法を示します。

証明書は、Web トラフィックを暗号化します。 これらの TLS/SSL 証明書は、Azure Key Vault に格納できます。

前提条件

  • Azure サブスクリプション。 サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
  • (オプション) Azure CLI バージョン 2.45.0 以降。 コマンド az extension add --name spring を使用して、Azure Spring Apps をインストールします。
  • Azure Spring Apps にデプロイされたアプリケーション (「クイックスタート: Azure portal を使用して Azure Spring Apps で既存のアプリケーションを起動する」を参照するか、既存のアプリを使用してください)。 Basic プランを使用してアプリケーションをデプロイしている場合、必ず Standard プランにアップグレードしてください。
  • GoDaddy などのドメイン プロバイダーの DNS レジストリへのアクセス権を持つドメイン名。
  • サードパーティ プロバイダーからのプライベート証明書 (つまり自己署名証明書)。 証明書はドメインと一致している必要があります。
  • Azure Key Vault のデプロイ済みインスタンス。 詳細については、Azure Key Vault の概要に関する記事を参照してください。

Azure Spring Apps の管理の IP アドレスは、まだ Azure Trusted Microsoft サービスには含まれていません。 そのため、プライベート エンドポイント接続によって保護されたキー コンテナーから Azure Spring Apps が証明書を読み込めるようにするには、Azure Key Vault のファイアウォールに以下の IP アドレスを追加する必要があります。

  • 20.99.204.111
  • 20.201.9.97
  • 20.74.97.5
  • 52.235.25.35
  • 20.194.10.0
  • 20.59.204.46
  • 104.214.186.86
  • 52.153.221.222
  • 52.160.137.39
  • 20.39.142.56
  • 20.199.190.222
  • 20.79.64.6
  • 20.211.128.96
  • 52.149.104.144
  • 20.197.121.209
  • 40.119.175.77
  • 20.108.108.22
  • 102.133.143.38
  • 52.226.244.150
  • 20.84.171.169
  • 20.93.48.108
  • 20.75.4.46
  • 20.78.29.213
  • 20.106.86.34
  • 20.193.151.132

証明書のインポート

PFX で証明書ファイルを準備する (省略可能)

Azure Key Vault は、PEM および PFX 形式のプライベート証明書のインポートをサポートしています。 証明書プロバイダーから取得した PEM ファイルが「Key Vault に証明書を保存する」セクションで動作しない場合、ここの手順に従って Azure Key Vault 用の PFX を生成します。

中間証明書を結合する

証明機関から証明書チェーンの複数の証明書を提供された場合は、それらの証明書を順番に結合する必要があります。

このタスクを行うには、受信した各証明書をテキスト エディターで開きます。

結合した証明書用に 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 を使用した場合、秘密キー ファイルは作成されています。 証明書を PFX にエクスポートするには、次のコマンドを実行します。 プレースホルダーの <private-key-file><merged-certificate-file> をそれぞれ、秘密キーのパスとマージされた証明書ファイルに変更します。

openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>

メッセージが表示されたら、エクスポートのパスワードを定義します。 このパスワードは、後で TLS/SSL 証明書を Azure Key Vault にアップロードするときに使用します。

IIS または Certreq.exe を使用して証明書の要求を生成した場合は、ローカル コンピューターに証明書をインストールした後で証明書を PFX にエクスポートします。

Key Vault に証明書を保存する

証明書をインポートする手順では、PEM または PFX でエンコードされたファイルがディスク上にあり、秘密キーを持っている必要があります。

次の手順を使用して、証明書をキー コンテナーにアップロードします。

  1. キー コンテナー インスタンスに移動します。

  2. ナビゲーション ペインで、[証明書] を選択します。

  3. 上部のメニューで、 [生成/インポート] を選択します。

  4. [証明書の作成] ページで、[証明書の作成方法] として [インポート] を選択し、[証明書名] の値を指定します。

  5. [証明書ファイルのアップロード] で、証明書の場所に移動し、選択します。

  6. [パスワード] では、パスワードで保護された証明書ファイルをアップロードする場合、ここにパスワードを指定します。 それ以外の場合は空白のまま残します。 証明書ファイルが正常にインポートされると、このパスワードはキー コンテナーによって削除されます。

  7. [作成] を選択します

    [証明書の作成] ペインのスクリーンショット。

キー コンテナーへの Azure Spring Apps のアクセス権を付与する

証明書をインポートする前に、次のようにして Azure Spring Apps にキー コンテナーへのアクセス権を付与する必要があります。

Azure portal を使用してアクセス権を付与するには、次の手順に従います。

  1. キー コンテナー インスタンスに移動します。
  2. ナビゲーション ペインで、[アクセス ポリシー] を選択します。
  3. 上部のメニューで、[作成] を選択します。
  4. 情報を入力し、[追加] ボタン、アクセス ポリシーの [作成] の順に選択します。
Secret permission (シークレットのアクセス許可) 証明書の権限 プリンシパルの選択
Get、List Get、List Azure Spring Apps Domain-Management (Azure Spring Apps ドメイン - 管理)

注意

"Azure Spring Apps Domain-Management" が見つからない場合は、"Azure Spring Cloud Domain-Management" を検索します。

[シークレットのアクセス許可] と [証明書のアクセス許可] で [Get] および [List] オプションが強調表示されている Azure portal の [アクセス ポリシーの作成] ページのスクリーンショット。

Azure Spring Cloud Domain-Management が選択されている、キー コンテナーの [アクセス ポリシーの作成] ページを示す Azure portal のスクリーンショット。

Azure Spring Apps に証明書をインポートする

  1. Azure Spring Apps インスタンスに移動します。

  2. ナビゲーション ウィンドウで、[TLS/SSL の設定] を選択します。

  3. [キー コンテナー証明書のインポート] を選択します。

    [キー コンテナー証明書のインポート] ボタンが強調表示されている [TLS/SSL 設定] ページを示す Azure portal のスクリーンショット。

  4. [Azure から証明書を選択] ページで、ドロップダウン オプションから [サブスクリプション][Key Vault][証明書] を選択し、[選択] を選択します。

    [Azure から証明書を選択] ページを表示している Azure ポータルのスクリーンショット。

  5. 開いた [証明書名の設定] ページで証明書名を入力し、必要に応じて [自動同期を有効にする] を選択し、[適用] を選択します。 詳細については、「証明書の自動同期」セクションを参照してください。

    [証明書の設定] ダイアログ ボックスのスクリーンショット。

  6. 証明書が正常にインポートされると、[秘密キー証明書] の一覧に表示されます。

    秘密キー証明書のスクリーンショット。

重要

この証明書を使用してカスタム ドメインをセキュリティで保護するには、必ず証明書を特定のドメインにバインドしてください。 詳細については、「SSL バインドを追加する」セクションを参照してください。

証明書を自動同期する

Azure Key Vault に格納されている証明書は、有効期限が切れる前に更新される場合があります。 同様に、証明書の管理に関する組織のセキュリティ ポリシーでは、DevOps チームが証明書を新しい証明書に定期的に置き換えることを要求する場合があります。 証明書の自動同期を有効にすると、Azure Spring Apps は新しいバージョンのキー コンテナーの同期を定期的 (通常は 24 時間ごと) に開始します。 新しいバージョンが使用可能な場合、Azure Spring Apps によってインポートされ、ダウンタイムを発生させることなく、証明書を使用してさまざまなコンポーネント用に再読み込みされます。 次の一覧は、影響を受けるコンポーネントと関連するシナリオを示しています。

Azure Spring Apps で証明書をインポートまたは再読み込みすると、アクティビティ ログが生成されます。 アクティビティ ログを表示するには、Azure portal で Azure Spring Apps インスタンスに移動し、ナビゲーション ウィンドウで [アクティビティ ログ] を選択します。

Note

証明書の自動同期機能は、Azure Key Vault からインポートされたプライベート証明書とパブリック証明書で動作します。 この機能は、顧客がアップロードするコンテンツ証明書では使用できません。

キー コンテナーから Azure Spring Apps に証明書をインポートするときに、証明書の自動同期機能を有効または無効にすることができます。 詳細については、「Azure Spring Apps に証明書をインポートする」セクションを参照してください。

Azure Spring Apps に既にインポートされている証明書に対して、この機能を有効または無効にすることもできます。

インポートされた証明書に対して自動同期を有効または無効にするには、次の手順を使用します。

  1. [秘密キー証明書] または [公開キー証明書] の一覧に移動します。

  2. [自動同期] 列の後にある省略記号 ([...]) ボタンを選択し、[自動同期を有効にする] または [自動同期を無効にする] を選択します。

    省略記号ボタン メニューが開き、[自動同期を有効にする] オプションが選択されている証明書の一覧を示す Azure portal のスクリーンショット。

カスタム ドメインの追加

カスタム DNS 名を Azure Spring Apps にマップするには、CNAME レコードを使用できます。

注意

A レコードはサポートされていません。

CNAME レコードを作成する

DNS プロバイダーに移動し、CNAME レコードを追加して、ドメインを <service-name>.azuremicroservices.io にマップします。 ここで、<service-name> は Azure Spring Apps インスタンスの名前です。 ワイルドカード ドメインとサブ ドメインがサポートされています。 CNAME を追加した後の DNS レコード ページは、次の例のようになります。

DNS レコード ページのスクリーンショット。

Azure Spring Apps アプリへのカスタム ドメインのマップ

Azure Spring Apps にアプリケーションがない場合は、「クイックスタート: 初めてのアプリケーションを Azure Spring Apps にデプロイする」の手順に従います。

アプリケーション ページに移動します。

  1. [カスタム ドメイン] を選択します。

  2. 次に、 [カスタム ドメインの追加] を選択します。

    カスタム ドメインのページのスクリーンショット。

  3. CNAME レコードを追加した完全修飾ドメイン名 (www.contoso.com など) を入力します。 [ホスト名レコード タイプ] が [CNAME (<service-name>.azuremicroservices.io)] に設定されていることを確認します。

  4. [検証] を選択すると、 [追加] ボタンが有効になります。

  5. [追加] を選択します。

    [カスタム ドメインの追加] ペインのスクリーンショット。

1 つのアプリは複数のドメインを持つことができますが、1 つのドメインは 1 つのアプリにのみマップできます。 カスタム ドメインがアプリに正常にマップされると、カスタム ドメイン テーブルにそのドメインが表示されます。

カスタム ドメイン テーブルのスクリーンショット。

注意

カスタム ドメインの [セキュリティ保護なし] というラベルは、まだ SSL 証明書にバインドされていないことを意味します。 ブラウザーからカスタム ドメインへの HTTPS 要求を実行すると、エラーまたは警告が表示されます。

SSL バインドの追加

前の図に示されているように、カスタム ドメイン テーブルで [SSL バインディングの追加] を選択します。

  1. [証明書] で選択するか、証明書をインポートします。

  2. [保存] を選択します。

    [SSL バインディング] ペインのスクリーンショット。

SSL バインディングが正常に追加されると、ドメインの状態は安全になり、[正常] と表示されます。

SSL バインディングのスクリーンショット。

HTTPS の適用

既定では、ユーザーは引き続き HTTP を使用してアプリにアクセスできますが、管理者はすべての HTTP 要求を HTTPS ポートにリダイレクトすることができます。

アプリ ページで、ナビゲーションにある [カスタム ドメイン] を選択します。 次に、[HTTPS のみ]Yes に設定します。

[HTTPS のみ] オプションが強調表示された SSL バインディングのスクリーンショット。

操作が完了したら、アプリを指す HTTPS URL のいずれかに移動します。 HTTP URL では機能しないことに注意してください。

次のステップ