Azure Container Apps のカスタム ドメイン名と独自の証明書の持ち込み
Azure Container Apps を使用すると、1 つ以上のカスタム ドメインをコンテナー アプリにバインドできます。
- すべてのドメイン名は、TLS/SSL 証明書に関連付けられる必要があります。 独自の証明書をアップロードすることも、無料のマネージド証明書を使用することもできます。
- 証明書はコンテナー アプリ環境に適用され、個々のコンテナー アプリにバインドされます。 証明書を追加するには、環境へのロールベースのアクセス権が必要です。
- SNI (サーバー名識別) ドメイン証明書が必要です。
- コンテナー アプリに対してイングレスを有効にする必要があります。
Note
カスタム環境の DNS (ドメイン ネーム システム) サフィックスを構成する場合、このサフィックスを含むカスタム ドメインをコンテナー アプリに追加することはできません。
カスタム ドメインと証明書を追加する
重要
新しい証明書を使用している場合は、Azure へのアップロードに使用できる既存の SNI ドメイン証明書ファイルが必要です。
Azure portal のコンテナー アプリに移動します。
[設定] セクションで [イングレス] を選択して、アプリでイングレスが有効になっていることを確認します。 イングレスが有効になっていない場合は、次の手順で有効にします。
- [HTTP イングレス] を [有効] に設定します。
- 目的の [イングレス トラフィック] 設定を選択します。
- [ターゲット ポート] を入力します。
- [保存] を選択します。
"[設定]" セクションで [カスタム ドメイン] をクリックします。
[カスタム ドメインの追加] ボタンを選択します。
[カスタム ドメインと証明書の追加] ウィンドウの [TLS/SSL 証明書] で、[Bring your own certificate] (独自の証明書を持ち込む) を選択します。
[ドメイン] に、追加するドメインを入力します。
[Add a certificate] (証明書を追加する) を選択します。
[Add a certificate] (証明書を追加する) ウィンドウの [証明書名] に、この証明書の名前を入力します。
[証明書ファイル] セクションで、アップロードする証明書ファイルを参照します。
[Validate] を選択します。
検証が成功したら、[追加] を選択します。
[カスタム ドメインと証明書の追加] ウィンドウの [証明書] で、先ほど追加した証明書を選択します。
ドメインの種類に基づいて [ホスト名レコード タイプ] を選択します。
ドメインの種類 レコードの種類 メモ Apex ドメイン A レコード APEX ドメインは、ご自分のドメインのルート レベルのドメインです。 たとえば、DNS (ドメイン ネーム システム) ゾーンが contoso.com
の場合、contoso.com
は APEX ドメインです。Subdomain CNAME サブドメインは、別のドメインに含まれるドメインです。 たとえば、DNS ゾーンが contoso.com
の場合、www.contoso.com
はそのゾーン内で構成できるサブドメインの例です。ドメインをホストしている DNS プロバイダーを使用し、[ドメインの検証] セクションに示されている値を使用して、選択した [ホスト名レコード タイプ] に基づいて DNS レコードを作成します。 このレコードで、ドメインをコンテナー アプリにポイントし、自分が所有していることを確認します。 セットアップは、プライベート エンドポイント (プレビュー) 機能でカスタム ドメインを使用しているかどうかによって異なります:
[A レコード] を選択した場合は、次の DNS レコードを作成します。
レコード タイプ Host 値 A @
Container Apps 環境の IP アドレス。 TXT asuid
ドメイン検証コード。 [CNAME] を選択した場合は、次の DNS レコードを作成します。
レコード タイプ Host 値 CNAME サブドメイン (例: www
)コンテナー アプリの生成されたドメイン。 TXT asuid.
その後にサブドメインが続く (例:asuid.www
)ドメイン検証コード。
[検証] ボタンを選びます。
検証が成功したら、[追加] ボタンを選択します。
操作が完了すると、ドメイン名が、カスタム ドメインの一覧に [セキュリティで保護] の状態で表示されます。 ドメインに移動して、アクセス可能であることを確認します。
Note
内部 Container Apps 環境のコンテナー アプリの場合、VNET スコープのイングレスでカスタム ドメインを使用するには、追加の構成が必要です。
Container Apps では、APEX ドメインとサブドメインがサポートされています。 ドメインの種類ごとに、異なる DNS レコード タイプと検証方法が必要です。
ドメインの種類 | レコードの種類 | Validation method (検証方法) | メモ |
---|---|---|---|
Apex ドメイン | A レコード | HTTP | APEX ドメインは、ご自分のドメインのルート レベルのドメインです。 たとえば、DNS ゾーンが contoso.com の場合、contoso.com は APEX ドメインです。 |
Subdomain | CNAME | CNAME | サブドメインは、別のドメインに含まれるドメインです。 たとえば、DNS ゾーンが contoso.com の場合、www.contoso.com はそのゾーン内で構成できるサブドメインの例です。 |
Azure CLI を使用して Azure にログインします。
az login
次に、CLI 用の Azure Container Apps 拡張機能をインストールします。
az extension add --name containerapp --upgrade
以下の環境変数を設定します。
<PLACEHOLDERS>
は、実際の値に置き換えます。RESOURCE_GROUP = "<RESOURCE_GROUP>" CONTAINER_APP = "<CONTAINER_APP>" ENVIRONMENT = "<ENVIRONMENT>" TARGET_PORT = "<TARGET_PORT>" DOMAIN_NAME = "<DOMAIN_NAME>" CERTIFICATE_LOWERCASE_NAME = "<CERTIFICATE_LOWERCASE_NAME>" CERTIFICATE_LOCAL_PATH = "<CERTIFICATE_LOCAL_PATH>" CERTIFICATE_PASSWORD = "<CERTIFICATE_PASSWORD>"
<CERTIFICATE_LOCAL_PATH>
を証明書ファイルのローカル パスに置き換えます。<CERTIFICATE_LOWERCASE_NAME>
を、環境内で一意の小文字の証明書名に置き換えます。<TARGET_PORT>
を、コンテナー アプリがリッスンしているポートに置き換えます。
コンテナー アプリで HTTP イングレスが有効になっていることを確認します。
az containerapp ingress show \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP
イングレスが有効になっていない場合は、次の手順で有効にします。
az containerapp ingress enable \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP \ --type external \ --target-port $TARGET_PORT \ --transport auto
APEX ドメインを構成する場合は、Container Apps 環境の IP アドレスを取得します。
az containerapp env show \ -n $ENVIRONMENT \ -g $RESOURCE_GROUP \ -o tsv \ --query "properties.staticIp"
サブドメインを構成する場合は、コンテナー アプリの自動生成されたドメインを取得します。
az containerapp show \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP \ -o tsv \ --query "properties.configuration.ingress.fqdn"
ドメイン検証コードを取得します。
az containerapp show \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP \ -o tsv \ --query "properties.customDomainVerificationId"
ドメインをホストしている DNS プロバイダーを使用し、[ドメインの検証] セクションに示されている値を使用して、選択したレコード タイプに基づいて DNS レコードを作成します。 このレコードで、ドメインをコンテナー アプリにポイントし、自分が所有していることを確認します。 セットアップは、プライベート エンドポイント (プレビュー) 機能でカスタム ドメインを使用しているかどうかによって異なります:
[A レコード] を選択した場合は、次の DNS レコードを作成します。
レコード タイプ Host 値 A @
Container Apps 環境の IP アドレス。 TXT asuid
ドメイン検証コード。 [CNAME] を選択した場合は、次の DNS レコードを作成します。
レコード タイプ Host 値 CNAME サブドメイン (例: www
)コンテナー アプリの生成されたドメイン。 TXT asuid.
その後にサブドメインが続く (例:asuid.www
)ドメイン検証コード。
環境に証明書をアップロードします。
az containerapp env certificate upload \ -g $RESOURCE_GROUP \ --name $ENVIRONMENT \ --certificate-file $CERTIFICATE_LOCAL_PATH \ --password $CERTIFICATE_PASSWORD \ --certificate-name $CERTIFICATE_LOWERCASE_NAME
証明書とドメインをコンテナー アプリにバインドします。
az containerapp hostname bind \ --hostname $DOMAIN_NAME \ -g $RESOURCE_GROUP \ -n $CONTAINER_APP \ --environment $ENVIRONMENT \ --certificate $CERTIFICATE_LOWERCASE_NAME \ --validation-method <VALIDATION_METHOD>
A レコードを構成する場合は、
<VALIDATION_METHOD>
をHTTP
に置き換えます。CNAME を構成する場合は、
<VALIDATION_METHOD>
をCNAME
に置き換えます。
証明書の発行とコンテナー アプリへのドメインの追加には数分かかる場合があります。
操作が完了したら、ご自分のドメインに移動してアクセス可能であることを確認します。
証明書の管理
証明書は、Container Apps 環境または個々のコンテナー アプリを使用して管理できます。
環境
Container Apps 環境の [証明書] ウィンドウには、環境に関連付けられているすべての証明書のテーブルが表示されます。
証明書は、以下のアクションを使用して管理できます。
アクション | 説明 |
---|---|
追加 | 新しい証明書を追加するには、[証明書を追加する] リンクを選択します。 |
削除 | 証明書を削除するには、ごみ箱アイコンを選択します。 |
更新 | テーブルの [正常性状態] フィールドは、有効期限から 60 日以内でまもなく証明書の有効期限が切れることを示します。 証明書を更新するには、[証明書の更新] リンクを選択して新しい証明書をアップロードします。 |
コンテナー アプリ
コンテナー アプリの "[カスタム ドメイン]" ウィンドウに、コンテナー アプリに関連付けられているカスタム ドメインの一覧が表示されます。
個々のドメイン名の証明書を管理するには、省略記号 (...) ボタンを選択して証明書バインド ウィンドウを開きます。 後続のウィンドウで、選択したドメイン名にバインドする証明書を選択できます。