eCDN 自動証明書

埋め込み CDN (eCDN) 自動証明書を使用すると、証明書管理に煩わされることなく、ストアフロントのトラフィックを HTTPS 経由で提供できます。

このガイドでは、CDN Zones API を使用して、新規および既存のホスト名とレガシー eCDN ゾーンで自動証明書を有効にする方法について説明します。

また、Business Manager で自動証明書を管理することもできます。 詳細については、管理 SSL 証明書の追加 を参照してください。

Note

前提条件 

  1. SCAPI Admin API の認可について理解します。
  2. スコープ sfcc.cdn-zones.rw をもつ Account Manager API クライアントが必要です。
  3. 使用するホスト名に関連付けられた既存のプロキシゾーンが必要です。
  4. プロキシゾーンが必要です。自動証明書はレガシーゾーンではサポートされていません。レガシーゾーンがある場合、まずプロキシゾーンに移行します。
  5. 自動証明書で使用する eCDN ゾーンのゾーン ID を把握しておく必要があります。この情報を取得するには、getZonesInfo を使用します。

既存のホスト名での自動証明書の有効化 

カスタム証明書に関連付けられた既存のホスト名をもつ自動証明書を使用するには、getCertificates を使用して証明書 ID を検索します。次に、updateCertificate を呼び出します。

1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/certificates/$CERTIFICATE" \
2  --request 'PATCH' \
3  --header "Authorization: Bearer $TOKEN" \
4  --header 'Content-Type: application/json' \
5  --data '{
6    "hostname": "www.example.com",
7    "certificateType": "automatic",
8    "certificateAuthority": "lets_encrypt"
9  }'

この呼び出しにより、ダウンタイムなしで既存のカスタム証明書が自動証明書に置き換えられます。

リクエストボディで提供されたデータを確認してみましょう。

hostname の値は、自動証明書で使用するドメインです。certificateTypeautomatic に設定する必要があります。最後に、certificateAuthority によって、証明書の発行に使用する認証局を制御します。この値は、lets_encrypt または google のいずれかでなければなりません。プロバイダーの選択は任意です。

新しいホスト名での自動証明書の有効化 

新しいホスト名で自動証明書を使用するには、指示に従って eCDN を構成 します。Business Manager を通じて証明書を追加するのではなく、addCertificateForZone を呼び出します。

1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/certificates" \
2  --header "Authorization: Bearer $TOKEN" \
3  --header 'Content-Type: application/json' \
4  --data '{
5    "hostname": "www.example.com",
6    "certificateType": "automatic",
7    "certificateAuthority": "lets_encrypt"
8  }'

自動証明書を使用するためのレガシーゾーンからプロキシゾーンへの移行 

自動証明書はレガシーゾーンでは使用できません。

ゾーンの末尾が cc-ecdn.net でない場合、そのゾーンはレガシーゾーンです。

プロキシゾーンとレガシーゾーンの詳細については、この記事 を参照してください。

Note

自動証明書を使用するには、まずプロキシゾーンへの移行が必要です。

プロキシゾーンに移行するには:

  1. createStorefrontZone を使用してストアフロントゾーンを作成します。
  2. 必要な設定をレガシーゾーンからプロキシゾーンにコピーします。
  3. addCertificateForZone を使用して自動証明書をリクエストします。
  4. ストアフロントの DNS レコードを更新して DNS カットオーバーを実行します。

まず、ストアフロントゾーンを作成します。

1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/storefront-zones" \
2  --header "Authorization: Bearer $TOKEN" \
3  --header 'Content-Type: application/json' \
4  --data '{
5    "domainName": "example.com"
6  }'

Business Manager でゾーンを引き続き管理するには、prddev の両方の組織 ID に対してストアフロントゾーンを作成する必要があります。

Note

次に、createFirewallRuleupdateSpeedSettingsupdateSecuritySettings を使用して、レガシーゾーンから必要な設定をコピーします。

それから、addCertificateForZone を使用して自動証明書をリクエストします。

1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/certificates" \
2  --header "Authorization: Bearer $TOKEN" \
3  --header 'Content-Type: application/json' \
4  --data '{
5    "hostname": "www.example.com",
6    "certificateType": "automatic",
7    "certificateAuthority": "lets_encrypt"
8  }'

最後に、ストアフロントの DNS レコードを更新して DNS カットオーバーを実行します。getZonesInfoname プロパティから DNS CNAME レコード値を取得します。

1www.example.com    CNAME    commcloud.prod-abcd-example-com.cc-ecdn.net.

詳細トピック 

その他のユースケース情報については、以下の各項を参照してください。

カスタム証明書に戻す 

updateCertificate を使用して、自動証明書をカスタム証明書に更新できます。

CDN スタッキング 

スタッキング構成では、証明書が最初にリクエストされたときと同様に、証明書の更新にも検証が必要です。トラフィックが eCDN を通過する場合、検証は HTTP を使用して行われ、ユーザーの介入なしに eCDN エッジからレコードが自動的に提供されます。

通常のストアトラフィックがスタック構成を通過するスタッキングシナリオでは、一部のスタックされたサービス構成で検証レコードが正しく渡されません。このようなシナリオでは、最初の検証方法は重要ではありません。Salesforce は DNS を制御できないため、新しい TXT レコードを自動的に配置することはできません。自動検証の唯一の手段は、HTTP 検証を使用することです。

HTTP 検証を完了するには、次のパターンに一致する URI の検証値を eCDN が提供する必要があります。

1http://<hostname>/.well-known/acme-challenge/<random-validation-key>

このチェックは、HTTPS ではなく HTTP 経由で実行されます。URI が HTTP 経由で利用できることを確認してください。

Tip

サードパーティーの CDN が積み重なった状態で eCDN 管理証明書を使用する場合、証明書の自動更新サイクルにより、3 か月ごとに TXT レコードの検証を選択する必要があります。ドメイン名の利用権確認 (DCV) の委任がない場合、TXT レコードの更新は 2 か月から 3 か月ごとに必要になります。DCV 委任は TXT 検証プロセスを自動化し、HTTP 検証で問題が発生した場合に役立ちます。必要に応じて、DNS レコードに含める DCV 委任 UUID についてサポートに問い合わせてください。

Note

証明書のピニングを使用する場合、証明書はいつでも更新される可能性があるため、自動証明書は使用できません。

検証メソッド 

自動証明書の検証には 2 つの選択肢、HTTP と DNS があります。

ほとんどの場合、デフォルトで使用されている HTTP 検証が正しい選択です。

短い発行遅延が許容されない場合は、certificateValidation リクエストプロパティに txt の値を指定して DNS 検証を使用します。

1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/certificates" \
2  --header "Authorization: Bearer $TOKEN" \
3  --header 'Content-Type: application/json' \
4  --data '{
5    "hostname": "www.example.com",
6    "certificateType": "automatic",
7    "certificateAuthority": "lets_encrypt",
8    "certificateValidation": "txt"
9  }'

getCertificatescustomHostnameVerificationTXTNamecustomHostnameVerificationTXTValue レスポンスプロパティを使用して、DNS TXT 検証レコードを作成します。

updateCertificate を使用して証明書の検証タイプを変更できます。

制約 

  • 自動証明書はプロキシゾーンでのみ使用できます。
  • ゾーンごとに最大 500 件の自動証明書をリクエストできます。
  • 自動証明書は、Let’s Encrypt および Google の認証局からのみ入手可能です。別の認証局、または拡張検証を備えた証明書を使用するには、カスタム証明書を使用してください。
  • CDN Zones API を使用して、レガシーゾーンにすでに存在するサイト用の Development (開発) インスタンスのプロキシゾーンを作成する場合、プロキシゾーンは API 経由でのみ管理できます。プロキシゾーンは、この既知の問題のため、Business Manager に表示されません。