高速化ドメイン名に HTTPS 証明書を設定して、クライアントと CDN ノード間の接続を暗号化します。これにより、パブリックネットワーク上でのデータ傍受や改ざんを防ぎ、ビジネスのセキュリティを向上させます。Alibaba Cloud の Certificate Management Service で購入した証明書は、CDN プラットフォームに一括でデプロイできます。詳細については、「HTTPS 証明書の一括デプロイ」をご参照ください。
考慮事項
開始する前に、以下の制限と要件を確認して、デプロイが成功するようにしてください:
証明書の購入:証明書をお持ちでない場合は、Certificate Management Service コンソールで商用証明書を購入するか、できます。
秘密鍵の要件:カスタム証明書をアップロードする場合、秘密鍵はパスワードで保護されていてはなりません。詳細については、「秘密鍵ファイルからパスワード保護が解除されていることを確認する」をご参照ください。
SM 証明書 (SM2):CDN コンソールは、SM2 デュアル証明書設定の直接設定をサポートしていません。SM 証明書を使用するには、SetCdnDomainSMCertificate API オペレーションを使用して設定する必要があります。
操作手順
-
CDN コンソールにログインします。
-
左側のナビゲーションウィンドウで、ドメイン名 をクリックします。
-
ドメイン名 ページで、対象のドメイン名を見つけ、操作 列の 管理 をクリックします。
-
ドメインのナビゲーションウィンドウで、HTTPS 設定 をクリックします。
HTTPS 証明書 セクションで、変更 をクリックします。
HTTPS 設定 ページで、HTTPS セキュアアクセラレーション スイッチをオンにし、証明書パラメーターを設定します。ポップアップウィンドウで、[HTTPS セキュアアクセラレーション] スイッチをオンにします (この機能を有効にすると、HTTPS リクエスト数に基づいて料金が発生します)。
Certificate Management Service の証明書をお持ちの場合は、SSL 証明書サービス を選択し、証明書名 ドロップダウンリストから証明書を選択します。
説明証明書が見つからない場合は、証明書にバインドされているドメイン名が高速化ドメイン名と同一であることを確認してください。
サードパーティプロバイダーの証明書を使用している場合は、カスタム証明書 (証明書 + プライベートキー) を選択します。次に、証明書名 を指定し、証明書 (公開鍵) と 秘密鍵 の内容を貼り付けます。証明書は Alibaba Cloud Certificate Management Service に保存され、[マイ証明書] ページで表示できます。
カスタムアップロード機能には、証明書 (公開鍵) と 秘密鍵 のフォーマットに関する厳格な要件があります。設定エラーが発生した場合や設定例が理解できない場合は、「カスタム証明書のアップロード」を参照して 証明書 (公開鍵) と 秘密鍵 を処理してからアップロードしてください。
パラメーター
説明
証明書名
アップロードする証明書の名前を入力します。
名前には、文字、ピリオド (.)、数字、アンダースコア (
_)、ハイフン (-) のみを含めることができます。名前は一意である必要があります。証明書 (公開鍵)
証明書ファイルの PEM エンコードされた内容を入力します。
秘密鍵
秘密鍵の PEM エンコードされた内容を入力します。セキュリティのため、アップロード後の秘密鍵はコンソールから表示またはエクスポートできません。秘密鍵の安全なコピーを保管してください。
OK をクリックします。
HTTPS 設定の確認
ブラウザでの確認:ブラウザで
https://ご利用の高速化ドメイン名にアクセスします。アドレスバーに鍵アイコンが表示され、有効な証明書の詳細が確認できれば、設定は成功です。コマンドラインでの確認:
curl -I https://ご利用の高速化ドメイン名を実行します。200のステータスコードは、HTTPS サービスがアクティブであることを確認します。
HTTPS 設定と back-to-origin ポート
CDN 高速化ドメイン名の HTTPS 証明書設定は、クライアントが使用できるプロトコルに影響し、それが back-to-origin プロトコルとポートに影響します。
HTTPS 証明書が設定されていない場合、CDN は HTTP リクエストのみをサポートし、back-to-origin ポートは 80 です。
HTTPS 証明書を設定し、HTTPS セキュアアクセラレーションを有効にすると、CDN は HTTP と HTTPS の両方のリクエストをサポートします。
back-to-origin プロトコルが「クライアントに追従」に設定されている場合、CDN はクライアントのプロトコルに基づいて back-to-origin ポートを自動的に選択します:HTTP の場合はポート 80、HTTPS の場合はポート 443 です。
back-to-origin プロトコルの設定方法の詳細については、「back-to-origin プロトコルの設定」をご参照ください。
HTTPS セキュアアクセラレーションの無効化
HTTPS セキュアアクセラレーションが不要になった場合は、CDN コンソールでいつでも無効にできます。変更はすぐに有効になります。機能が無効になると、クライアントは HTTPS 経由でリソースにアクセスできなくなり、証明書と秘密鍵の情報は削除されます。
HTTPS セキュアアクセラレーションを再度有効にするには、証明書を再度選択して設定する必要があります。
カスタム証明書のアップロード
サードパーティプロバイダーから発行された証明書または自己署名証明書をお持ちの場合は、アップロードする前に、サポートされているフォーマットで証明書と秘密鍵を準備する必要があります。
証明書 (公開鍵)
CDN は PEM フォーマットの証明書のみをサポートしています。他のフォーマットを変換するには、「証明書のフォーマットを変換する」をご参照ください。アップロード要件は認証局 (CA) によって異なります:
ルート CA によって発行された証明書 (証明書ファイル 1 つ)
PEM 証明書ファイルをテキストエディタで開きます。
-----BEGIN CERTIFICATE-----で始まり-----END CERTIFICATE-----で終わる行を含む、すべての内容をアップロードします。-----BEGIN CERTIFICATE----- [証明書の内容] -----END CERTIFICATE-----中間 CA によって発行された証明書 (複数の証明書ファイル)
サーバー証明書とすべての中間 CA 証明書を順番に連結して、単一の証明書チェーンファイルを作成します。ファイルの内容は次のフォーマットに従う必要があります:-----BEGIN CERTIFICATE----- [サーバー証明書の内容] -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- [中間 CA 証明書の内容] -----END CERTIFICATE-----
秘密鍵
秘密鍵のファイル拡張子は通常.keyまたは.pemです。秘密鍵ファイルをテキストエディタで開きます。アップロード要件は、さまざまな秘密鍵フォーマットで異なります:RSA 秘密鍵を直接アップロード
秘密鍵が
-----BEGIN RSA PRIVATE KEY-----で始まり-----END RSA PRIVATE KEY-----で終わる場合は、秘密鍵の内容を直接アップロードします。-----BEGIN RSA PRIVATE KEY----- [秘密鍵の内容] -----END RSA PRIVATE KEY-----アップロード前に他の秘密鍵フォーマットを変換
秘密鍵が
-----BEGIN PRIVATE KEY-----で始まり-----END PRIVATE KEY-----で終わる場合は、まず OpenSSL コマンドを使用して鍵を変換します。その後、RSA 秘密鍵を直接アップロードセクションで説明されているように、変換された秘密鍵の内容をアップロードします。コマンドでは、old_server_key.pemが元の秘密鍵で、new_server_key.pemが変換後の秘密鍵です。# 変換対象の秘密鍵 -----BEGIN PRIVATE KEY----- [秘密鍵の内容] -----END PRIVATE KEY-----# 変換コマンド openssl rsa -in old_server_key.pem -out new_server_key.pemサードパーティプロバイダーから証明書をダウンロードまたは申請する際は、次のファイルの違いに注意してください:
通常、
.pemまたは.crtファイルには公開鍵 (証明書の内容) が含まれ、.keyまたは.privateファイルには秘密鍵が含まれます。アップロード時には、公開鍵ファイル (
.pemまたは.crt) の内容を「証明書 (公開鍵)」フィールドに、秘密鍵ファイル (.keyまたは.private) の内容を「秘密鍵」フィールドに貼り付けます。CSR ファイルはアップロードしないでください。証明書署名要求 (CSR) は、認証局から証明書を申請するためにのみ使用され、証明書や秘密鍵として使用することはできません。
Nginx フォーマットの証明書を使用している場合は、次のことを確認してください:
証明書ファイルの内容が PEM フォーマットであり、
-----BEGIN CERTIFICATE-----で始まっていること。秘密鍵ファイルの内容が PEM フォーマットであり、
-----BEGIN RSA PRIVATE KEY-----または-----BEGIN PRIVATE KEY-----で始まっていること。証明書と秘密鍵が一致していること。
ファイルから余分なスペース、改行、または非標準文字を削除すること。
証明書チェーンが不完全な場合は、アップロードする前に中間証明書と主証明書を 1 つのファイルに結合する必要があります。詳細については、「証明書のフォーマット」をご参照ください。
課金
HTTPS セキュアアクセラレーションを有効にすると、追加料金が発生します。
課金項目:静的 HTTPS リクエスト。この料金は CDN のデータ転送料金とは別で、アカウント下のすべての高速化ドメイン名にわたる静的 HTTPS リクエストの総数に基づきます。
課金方法:従量課金サポートされています。
費用に関する注意:CDN データ転送プランは、HTTPS リクエストの料金を相殺するために使用することはできません。
参照
ドキュメント | 説明 |
HTTPS への強制リダイレクト機能を設定して、クライアントから CDN ノードへのリクエストを、より安全な HTTPS リクエストにリダイレクトできます。 | |
HTTP Strict Transport Security (HSTS) を有効にして、ブラウザなどのクライアントが CDN ノードに接続する際に HTTPS を使用するように強制し、セキュリティを強化します。 | |
CDN ノードはオンライン証明書検証結果を事前にキャッシュし、クライアントに配信します。これにより、ブラウザが証明書の状態を CA サイトに直接問い合わせる必要がなくなり、ユーザーの検証時間が短縮されます。 |
よくある質問
HTTPS プロトコルを使用して高速化されたドメイン名に、ほとんどのデバイスはアクセスできるのに、一部のデバイスがアクセスできないのはなぜですか?
Q:CDN ドメイン名の SSL 証明書を更新または交換した後、HTTPS アクセスが失敗したり、古い証明書が表示されたりします。どうすればよいですか?
証明書が正しくデプロイされていることを確認します:CDN コンソールにログインし、HTTPS 設定で新しい証明書が選択またはアップロードされていることを確認します。
ドメイン名の不一致を確認します:証明書にバインドされているドメイン名が、www などのプレフィックスを含め、CDN 高速化ドメイン名と完全に一致していることを確認します。
キャッシュをクリアします:設定が有効になった後 (通常 1〜10 分)、CDN ノードキャッシュとローカルブラウザキャッシュの両方をクリアしてから、再度テストします。シークレットブラウザウィンドウを使用して確認します。
オリジンサーバーの証明書が更新された場合、CDN は自動的に同期しません。CDN コンソールで手動で証明書を更新する必要があります。
Q:CDN に HTTPS 証明書を設定した後、ブラウザに「安全でない」という警告や混合コンテンツの警告が表示されます。これをトラブルシューティングするにはどうすればよいですか?
Web ページのソースコードで、HTTP 経由で読み込まれるリソース (画像、JS、CSS) がないか確認します。混合コンテンツの問題を解決するために、それらの URL を HTTPS に置き換えます。
ローカルブラウザのキャッシュをクリアするか、シークレットウィンドウを使用して、古いキャッシュされた証明書を除外します。
クライアントのシステム時刻が正しいことを確認します。システム時刻が正しくないと、証明書の検証が失敗する可能性があります。
iOS デバイスからアクセスしたときにエラーが表示される場合は、証明書チェーンが不完全である可能性があります。myssl.com などのオンラインツールを使用してチェーンを確認し、必要に応じて完全なチェーンをアップロードします。
Q:CDN コンソールで、「SSL 証明書サービス」の下に購入した証明書が見つからない、またはドメインの不一致エラーが表示されるのはなぜですか?
証明書にバインドされているドメイン名が、現在の CDN 高速化ドメイン名と完全に一致していることを確認します。たとえば、ルートドメイン
example.comの証明書は、サブドメインimage.example.comには使用できません。サブドメインには別の証明書を申請する必要があります。証明書と CDN ドメイン名が同じ Alibaba Cloud アカウントにあることを確認します。
無料の SSL 証明書を申請する場合、www プレフィックスは自動的に含まれません。申請時に完全なドメイン名を入力する必要があります。
ドメインフォーマットの違い (ルートドメインとサブドメインなど) により証明書が自動的に照合できない場合は、Certificate Management Service コンソールでデプロイタスクを作成して CDN に証明書をデプロイするか、証明書ファイルをダウンロードしてカスタムアップロード方法で証明書を設定します。
Q:CDN で HTTPS を設定した後、ERR_SSL_PROTOCOL_ERROR または SSL_ERROR_NO_CIPHER_OVERLAP エラーが表示されるのはなぜですか?
このエラーは通常、CDN ノードに有効な SSL 証明書が設定されていないことを示します。次の手順でトラブルシューティングを行ってください:
CDN コンソールの HTTPS 設定を確認します。証明書がアップロードされ、有効になっており、期限切れでないことを確認します。
カスタム証明書を使用している場合は、それが正しい PEM フォーマットであり、秘密鍵がパスワードで保護されていないことを確認します。
証明書と秘密鍵が一致し、証明書にバインドされているドメイン名が高速化ドメイン名と一致していることを確認します。
以前に HTTPS 証明書を設定したことがない場合は、CDN コンソールで設定を完了します。設定が完了するまで、URL から「s」を削除して HTTP 経由でコンテンツに一時的にアクセスできます。
Q:API または CLI を使用して CDN ドメイン名の SSL 証明書を設定するにはどうすればよいですか?
SetCdnDomainSSLCertificate オペレーションを呼び出すことができます。
Alibaba Cloud CLI を使用する場合のコマンドの例は次のとおりです:
aliyun cdn set-cdn-domain-ssl-certificate \ --domain-name <your_accelerated_domain_name> \ --cert-name <certificate_name> \ --cert-id <certificate_ID> \ --cert-type cas \ --ssl-protocol on \ --region cn-hangzhouカスタム証明書をアップロードするには、
ssl-pub(公開鍵) とssl-pri(秘密鍵) パラメーターを指定し、cert-typeパラメーターをuploadに設定する必要があります。コマンドの例は次のとおりです:aliyun cdn set-cdn-domain-ssl-certificate \ --domain-name example.com \ --cert-name yourCertName \ --cert-type upload \ --ssl-protocol on \ --ssl-pub "<PEM-encoded_public_key_content>" \ --ssl-pri "<PEM-encoded_private_key_content>" \ --region cn-hangzhou重要CSR ファイルの内容を API オペレーションに渡さないでください。CSR ファイルは証明書を申請するためにのみ使用され、証明書や秘密鍵として使用することはできません。
関連 API
API | 説明 |
CSR を使用してドメインの証明書を設定します。 | |
指定された高速化ドメイン名の証明書情報をクエリします。 | |
ドメイン名の証明書機能を有効または無効にし、証明書情報を更新します。 | |
指定されたドメイン名に HTTPS 証明書を設定します。 | |
証明書情報に基づいて高速化ドメイン名をクエリします。 | |
CDN 証明書の詳細をクエリします。 | |
証明書のリストをクエリします。 | |
指定された証明書の情報をクエリします。 | |
ユーザーアカウントのすべての証明書情報をクエリします。 | |
証明書が期限切れになったドメイン名の数をクエリします。 | |
SM 証明書を設定します。 | |
SM 証明書のリストをクエリします。 | |
SM 証明書の詳細をクエリします。 |