すべてのプロダクト
Search
ドキュメントセンター

CDN:HTTPS のよくある質問

最終更新日:Nov 09, 2025

HTTPS は、Content Delivery Network (CDN) を介して配信されるコンテンツを保護する安全な HTTP チャンネルです。これにより、クライアントは高速でコンテンツにアクセスしながら、安全かつ効率的に Web サイトを閲覧できます。このトピックでは、HTTPS に関するよくある質問 (FAQ) に回答します。

HTTPS とは

Hypertext Transfer Protocol Secure (HTTPS) は、HTTP 経由で送信されるデータを暗号化するセキュリティプロトコルです。HTTP プロトコルはコンテンツをプレーンテキストで送信し、データ暗号化を提供しません。HTTPS は、HTTP プロトコルを SSL または TLS でカプセル化する HTTP の安全なバージョンです。HTTPS のセキュリティは SSL または TLS に基づいています。HTTPS は、ID 検証と暗号化された通信を提供します。これは、支払いトランザクションなど、World Wide Web 上のセキュリティが重要な通信に広く使用されています。Alibaba Cloud CDN で HTTPS を設定する場合、ドメイン名の証明書を提供する必要があります。証明書はすべての CDN POP (Point of Presence) にデプロイされ、ネットワーク全体で暗号化されたデータ伝送を可能にします。

一般的な HTTP 攻撃の種類

HTTPS は安全なアクセスの一部にすぎません。包括的なネットワークセキュリティを確保するには、WAF や DDoS などの防御策も使用する必要があります。一般的な HTTP 攻撃の種類は次のとおりです。

  • SQL インジェクション: 攻撃者は、既存のアプリケーションを介してバックエンドのデータベースエンジンに悪意のある SQL コマンドを注入して実行できます。また、Web フォームに悪意のある SQL 文を入力することで、脆弱な Web サイトのデータベースにアクセスすることもできます。これにより、設計者が意図したものとは異なる方法で実行されます。

  • クロスサイトスクリプティング (XSS) 攻撃: クロスサイトスクリプティング (XSS) は、Web サイトを攻撃するために使用される最も一般的で基本的な方法の 1 つです。攻撃者は、悪意のあるコードを含むデータを Web ページに投稿します。訪問者がこのページを表示すると、スクリプトは訪問者のユーザー ID と権限で実行されます。XSS は、ユーザーデータの変更やユーザー情報の盗用に使用される可能性があります。

  • クロスサイトリクエストフォージェリ (CSRF) 攻撃: クロスサイトリクエストフォージェリ (CSRF) は、もう 1 つの一般的な攻撃です。攻撃者は、フォームを送信しているユーザーを模倣するために、さまざまな方法でリクエストを偽造します。これにより、攻撃者はユーザーデータを変更したり、特定のタスクを実行したりできます。ユーザーになりすますために、CSRF 攻撃は XSS 攻撃と組み合わせて行われることがよくあります。ただし、ユーザーをだまして悪意のあるリンクをクリックさせるなど、他の手段で実行することもできます。

  • HTTP ヘッダー攻撃: Web サイトの技術やフレームワークに関係なく、ブラウザを使用して Web サイトを表示するときに HTTP プロトコルが使用されます。HTTP プロトコルには、応答ヘッダーとコンテンツの間に空白行があり、これは 2 セットの CRLF (0x0D 0A) 文字で構成されます。この空白行は、ヘッダーの終わりとコンテンツの始まりを示します。攻撃者はこの脆弱性を悪用する可能性があります。この攻撃は、攻撃者がヘッダーに任意の文字を注入できる場合に発生する可能性があります。

  • リダイレクト攻撃: フィッシングは一般的な攻撃方法です。フィッシング攻撃者は通常、正規に見えるリンクを被害者に送信します。被害者がリンクにアクセスすると、悪意のある Web サイトにリダイレクトされます。これは、被害者をだましてサイトを信頼させ、情報を盗むために行われます。これを防ぐには、悪意のある場所へのリダイレクトを避けるために、すべてのリダイレクト操作を確認する必要があります。一般的な解決策の 1 つは、ホワイトリストを使用することです。正規のリダイレクト URL をホワイトリストに追加できます。ホワイトリストにないドメインへのリダイレクトは拒否されます。もう 1 つの解決策は、リダイレクトトークンを使用することです。正規の URL にトークンを追加し、リダイレクト中にそれを検証できます。

HTTPS は Web サイトのログインにのみ必要ですか

いいえ。次の点を考慮してください。

  • セキュリティ: 一部のページで HTTP を使用し、他のページで HTTPS を使用する場合、JS や CSS ファイルなどの他のリソースが HTTP 経由または安全でない CDN サービスから読み込まれると、Web サイトでユーザー情報が漏洩するリスクがあります。サイト全体で HTTPS を使用することが、このリスクを軽減する最も簡単な方法です。

  • パフォーマンス: Web サイトが HTTPS と HTTP の両方のプロトコルを使用する場合、それらを切り替えるには複数のサーバーリダイレクトが必要です。これらのリダイレクトにより、ページの読み込みが遅くなります。

  • ネットワーク全体の利点: ブラウザは HTTPS にフレンドリです。検索エンジンも HTTPS サイトのインデックス作成をより適切にサポートします。

HTTPS の設定に必要な証明書

クライアントから CDN POP へのリクエストを暗号化するだけでよい場合は、CDN で HTTPS 証明書を設定する必要があります。

エンドツーエンドの HTTPS アクセスを設定する場合は、CDN とオリジンサーバーで HTTPS 証明書を設定する必要があります。詳細については、「HTTPS 高速化とは」をご参照ください。

CDN の HTTPS 高速化を有効にすると追加料金は発生しますか

はい、追加料金が発生します。CDN の HTTPS 高速化を有効にすると、クライアントから CDN POP (Point of Presence) へのリンクが保護されます。SSL ハンドシェイクとコンテンツの復号には計算が必要であり、これにより CDN サーバーの CPU リソース消費量が増加します。ただし、CDN POP からオリジンサーバーへのリンクは引き続き HTTP プロトコルを使用するため、オリジンサーバーのリソース消費量は増加しません。

異なる種類の証明書を購入すると、追加料金が請求されます。また、Alibaba Cloud Certificate Management Service コンソールにログインして、無料の個人用テスト証明書をリクエストすることもできます。個人用テスト証明書 (Free Edition) はドメイン認証 (DV) 証明書です。高速化ドメイン名ごとに 1 つの無料の個人用テスト証明書をリクエストできます。証明書は 3 か月間有効で、有効期限が切れると無料で自動更新できます。HTTPS 証明書を設定すると、そのドメイン名の CDN 上のすべての HTTPS リクエストに対して課金されます。

IP ブラックリスト/ホワイトリストまたは User-Agent ブラックリストによってブロックされた場合、または 403/404 エラーが返された場合、HTTPS リクエストは課金されますか

はい、課金されます。リクエストがポリシー ルールにヒットし、403 または 404 ステータスコードが返された場合、リクエストは正しく応答されたと見なされます。したがって、1 つの HTTPS リクエストとしてカウントされます。リクエストにはリソースコンテンツが含まれていないため、トラフィックは最小限であり、課金対象のトラフィックも最小限です。

オリジンサーバーに HTTPS が設定されている場合でも、CDN で設定する必要がありますか

HTTPS には、クライアントとサーバー間のやり取りが含まれます。CDN を使用する前は、クライアントはオリジンサーバーと直接やり取りします。したがって、オリジンサーバーには HTTPS が設定されている必要があります。CDN の使用を開始すると、クライアントは CDN とやり取りします。HTTPS 経由で CDN にアクセスする場合は、CDN で HTTPS 証明書を設定する必要があります。CDN で HTTPS 証明書を設定する方法の詳細については、「HTTPS 証明書を設定する」をご参照ください。

HTTPS 高速化を有効にすると、より多くのリソースが消費されたり、アクセス速度が低下したりしますか

オリジンサーバーが HTTPS を有効にすると、HTTP 経由のアクセスと比較してコンピューティングリソースの消費量が増加します。これは主に、HTTPS ハンドシェイク中の非対称暗号化と復号の消費によるものです。高同時実行シナリオでは、リソース消費量が大幅に増加します。対称暗号化と復号の消費量は、基本的に HTTP と同じです。したがって、セッション再利用率を上げる必要があります。ただし、HTTPS 経redioでオリジンサーバーに直接アクセスすると、HTTP 経由で直接アクセスするよりも時間がかかります。

エンドツーエンドの HTTPS アクセスに動的アクセラレーションを使用すると、平均 SSL ハンドシェイク時間が短縮されます。高同時実行シナリオでは、オリジンサーバーのセッション再利用率が大幅に向上し、オリジンサーバーのリソース消費量が減少します。

  • 静的コンテンツの場合: エッジ配信を使用すると、伝送時間は短縮されますが、ハンドシェイク時間は長くなります。したがって、全体的なアクセス時間は短縮されます。静的リソースはオリジンフェッチを必要としないため、オリジンサーバーとのやり取りが減り、リソース消費量が削減されます。

  • 動的コンテンツの場合: パス選択は、従来のパブリックネットワークアクセスよりも制御可能で最適です。動的リクエストはオリジンからフェッチする必要があります。オリジンフェッチに動的アクセラレーションを使用すると、セッション再利用率が向上し、全体的な伝送速度が向上します。動的リクエストはオリジンからフェッチする必要があるため、非対称暗号化と復号が不可欠であり、オリジンサーバーのリソース消費量が増加します。ただし、オリジンフェッチに動的アクセラレーションを使用してエンドツーエンドの HTTPS アクセスを実現することは、全体的なリソース消費量の点で最も最適なソリューションです。

HTTPS 証明書を設定する方法

CDN コンソールで HTTPS 証明書を設定できます。詳細については、「HTTPS 証明書を設定する」をご参照ください。

HTTPS 証明書のアップロード時に「証明書の重複」エラーが表示された場合の対処方法

カスタム証明書のアップロード (証明書 + プライベートキー) タイプの証明書をアップロードするときに、システムが証明書が重複していることを示す場合は、証明書名を変更して再度アップロードしてください。

複数の .crt ファイルを含むサードパーティ証明書をアップロードする方法

中間認証局 (CA) によって発行された証明書ファイルには、複数の証明書が含まれています。アップロードする前に、サーバー証明書と中間証明書を 1 つの完全な証明書に結合する必要があります。

すべての *.PEM 証明書ファイルをテキストエディターで開きます。最初にサーバー証明書を配置し、次に中間証明書を配置します。証明書間に空白行があってはなりません。通常、発行元の CA は証明書を発行する際に指示を提供します。必ずルールと指示をお読みください。

結合された証明書を次の図に示します。

拼接后的PEM格式证书

設定中に「無効な証明書フォーマット」エラーが表示された場合に証明書を変換する方法

HTTPS 設定では、PEM フォーマットの証明書のみがサポートされます。CA によって、証明書コンテンツのアップロードに関する要件が異なります。特定のフォーマット要件の詳細については、「証明書フォーマットの要件」をご参照ください。証明書が PEM フォーマットでない場合は、アップロードする前にフォーマットを変換する必要があります。詳細については、「証明書のフォーマットを変換する」をご参照ください。

オリジンサーバーの HTTPS 証明書が更新された場合、更新を CDN に同期する必要がありますか

いいえ、必要ありません。オリジンサーバーの HTTPS 証明書を更新しても、CDN の HTTPS 証明書には影響しません。CDN の HTTPS 証明書は、有効期限が近づいているか、すでに有効期限が切れている場合にのみ更新する必要があります。詳細については、「HTTPS 証明書を設定する」をご参照ください。

HSTS の設定時に「サブドメインを含む」を有効にした場合、サブドメインでも HSTS を有効にする必要がありますか

いいえ、必要ありません。「サブドメインを含む」を有効にすると、HSTS ポリシーはすべてのサブドメインで有効になります。すべてのサブドメインが HTTPS アクセスをサポートしていることを確認してください。そうしないと、サブドメインにアクセスできなくなります。

HTTPS を設定しましたが、クライアントが HTTP 経由でサイトにアクセスするのはなぜですか

クライアントが HTTP または HTTPS を使用してサイトにアクセスするかどうかは、クライアントの動作によって決まります。クライアントに HTTPS の使用を強制する場合は、CDN で HTTPS への強制リダイレクトを有効にできます。詳細については、「強制リダイレクトを設定する」をご参照ください。

ほとんどのデバイスは HTTPS で高速化されたドメイン名にアクセスできるのに、一部のデバイスがアクセスできないのはなぜですか

これは主に、CDN が Server Name Indication (SNI) に依存して HTTPS リクエストを処理するためです。SNI は TLS プロトコルの拡張機能です。これにより、クライアントは HTTPS 接続リクエストを開始するときにアクセスしたいホスト名を指定できます。

ただし、一部の古いクライアントや特別に設定されたクライアントは SNI をサポートしていないか、HTTPS リクエストを開始するときに SNI 情報を送信しない場合があります。例としては、古いバージョンの Android や iOS、Java 6 以前、一部のモノのインターネット (IoT) デバイスなどがあります。この場合、CDN POP はクライアントがアクセスしたい正確なサイトを特定できません。その結果、POP は正しい SSL/TLS 証明書を提供できません。HTTPS 接続の試行は失敗し、ユーザーは Web サイトのコンテンツにアクセスできません。

この問題を解決するには、次の対策を講じることができます。

  • クライアントシステムのアップグレード: オペレーティングシステムとソフトウェアの最新バージョンを使用して、SNI サポートを取得していることを確認してください。

  • IoT デバイスのファームウェアの更新: IoT デバイスの場合、製造元からの最新のファームウェア更新を定期的に確認してインストールしてください。

秘密鍵ファイルからパスワード保護を解除する方法

  1. キーがパスワードで保護されているかどうかを確認する

    秘密鍵がパスワードで保護されており、その暗号化方式がわかっている場合は、ステップ 2 に進んで復号してください。秘密鍵がパスワードで保護されているかどうかわからない場合、またはその暗号化方式がわからない場合は、次の手順を実行できます。

    1. RSA アルゴリズムで暗号化された秘密鍵

      OpenSSL を使用して次のコマンドを実行します。秘密鍵が暗号化されている場合、OpenSSL はパスワードの入力を求めます: Enter pass phrase for <encrypted_private_key_file>:。秘密鍵が暗号化されていない場合、OpenSSL はパスワードを要求せず、秘密鍵情報を直接表示します。エラーが報告された場合、秘密鍵は RSA で暗号化されたファイルではありません。

      openssl rsa -in <encrypted_private_key_file> -text -noout
    2. ECC または SM2 アルゴリズムで暗号化された秘密鍵

      OpenSSL を使用して次のコマンドを実行します。秘密鍵が暗号化されている場合、OpenSSL はパスワードの入力を求めます: Enter pass phrase for <encrypted_private_key_file>:。秘密鍵が暗号化されていない場合、OpenSSL はパスワードを要求せず、秘密鍵情報を直接表示します。エラーが報告された場合、秘密鍵は ECC または SM2 で暗a号化されたファイルではありません。

      openssl ec -in <encrypted_private_key_file> -text -noout
  2. 復号ソリューション

    • 証明書の暗号化アルゴリズムが RSA の場合は、OpenSSL または BabaSSL がインストールされているコンピューターで次のコマンドを実行して秘密鍵を復号します。

      openssl rsa -in <encrypted_private_key_file> -passin pass:<private_key_password> -out <decrypted_private_key_file>
    • 証明書の暗号化アルゴリズムが ECC または SM2 の場合は、OpenSSL または BabaSSL がインストールされているコンピューターで次のコマンドを実行して秘密鍵を復号します。

      openssl ec -in <encrypted_private_key_file> -passin pass:<private_key_password> -out <decrypted_private_key_file>