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

ApsaraVideo Live:セキュアアクセラレーション

最終更新日:May 28, 2025

ApsaraVideo Live は、HTTPS セキュアアクセラレーションと強制リダイレクト機能をサポートしています。このトピックでは、セキュアアクセラレーションの仕組み、メリット、セキュアアクセラレーションの構成方法、および使用上の注意について説明します。

背景情報

HTTP はプレーンテキストでデータを送信し、データを暗号化しません。そのため、コンテンツは簡単に傍受され、理解される可能性があります。

概要

ApsaraVideo Live では、HTTPS セキュアアクセラレーションと強制リダイレクト機能を構成できます。強制リダイレクト機能を使用するには、Secure Sockets Layer(SSL)証明書を構成する必要があります。

  • HTTPS

    HTTPS は、ネットワーク経由の安全な通信に使用されます。HTTP はプレーンテキストでデータを送信します。HTTP の安全なバージョンである HTTPS は、SSL または Transport Layer Security(TLS)プロトコルを使用して HTTP データをカプセル化します。SSL または TLS は、HTTPS のセキュリティ基盤です。

    HTTPS は認証と暗号化された通信方法を提供し、インターネット上の安全な通信と機密データの送信に広く使用されています。Electronic Frontier Foundation(EFF)が 2017 年に発表したレポートによると、世界の Web ページトラフィックの半分以上が HTTPS を使用した暗号化モードで送信されています。

  • 強制リダイレクト

    強制リダイレクト機能を使用すると、クライアントからの元のリクエストを HTTP または HTTPS リクエストとして Alibaba Cloud Points of Presence(POP)にリダイレクトできます。

    ドメイン名に対して HTTPS セキュアアクセラレーションを有効にしている場合は、指定されたリダイレクトタイプに基づいて、ユーザーからの元のリクエストを強制的にリダイレクトできます。リダイレクトタイプを HTTP -> HTTPS に設定したとします。クライアントが HTTP リクエストを開始すると、サーバーは 301 応答を返し、次の図に示すように、リクエストを Web ページの HTTPS バージョンにリダイレクトします。

仕組み

ApsaraVideo Live コンソールで HTTPS を有効にすると、クライアントから ApsaraVideo Live に送信されるリクエストは HTTPS を使用して暗号化されます。ApsaraVideo Live は、オリジンサーバーからリクエストされたリソースを取得し、オリジンサーバーで構成されているプロトコルを使用してリソースをクライアントに返します。エンドツーエンドの HTTPS 暗号化を実装するには、オリジンサーバーの HTTPS を構成して有効にすることをお勧めします。

次の図は、HTTPS がデータを暗号化する方法を示しています。

  1. クライアントは HTTPS 経由でリクエストを送信します。

  2. サーバーは公開鍵と秘密鍵を生成します。鍵は自分で準備するか、認証局からリクエストできます。

  3. サーバーは公開鍵証明書をクライアントに送信します。

  4. クライアントは証明書を検証します。

    • 証明書が有効な場合、クライアントはランダムな文字列を生成します。クライアントは公開鍵を使用してランダムな文字列を暗号化し、暗号化されたランダムな文字列をサーバーに送信します。

    • 証明書が無効な場合、SSL ハンドシェイクは失敗します。

    説明

    証明書は、次の条件が満たされている場合に有効と見なされます。

    • 証明書の期限が切れていない。

    • 証明書が信頼できる認証局(CA)によって発行されている。

    • 証明書の公開鍵を使用して、証明書の署名を復号化できる。

    • サーバー証明書のドメイン名が、サーバーでホストされている実際のドメイン名と同じである。

  5. サーバーは秘密鍵を使用して、暗号化されたランダムな文字列を復号化します。

  6. サーバーはランダムな文字列を使用してデータを暗号化し、データをクライアントに送信します。

  7. クライアントはランダムな文字列を使用して、受信したデータを復号化します。

メリット

  • 安全な転送:HTTPS セキュアアクセラレーションは、盗聴、改ざん、偽装攻撃、および中間者(MITM)攻撃から通信を保護します。

  • 情報の暗号化:HTTPS は、セッション ID や Cookie などの機密情報を送信前に暗号化します。これにより、機密情報の漏えいによるセキュリティの脅威を防ぎます。

  • データの整合性:HTTPS はデータ送信中に整合性チェックを実行して、DNS ハイジャックや改ざんなどの MITM 攻撃からデータを保護します。

  • 支配的なトレンド:ますます多くの主流ブラウザが HTTP URL を安全ではないとラベル付けしています。HTTP を使用すると、ユーザーエクスペリエンスが影響を受け、アクセスセキュリティを確保できません。さらに、ApsaraVideo Live では、HTTPS 設定を構成するときに HTTP/2 を有効にすることができ、検索重み付け方式を使用できます。

    データセキュリティとユーザーエクスペリエンスを向上させるために、通信プロトコルを HTTPS にスペックアップすることを強くお勧めします。

構成方法

HTTPS セキュアアクセラレーション

HTTPS 経由でリソースにアクセスするには、HTTPS 証明書を構成する必要があります。詳細については、「証明書のフォーマット」をご参照ください。

ApsaraVideo Live コンソールを使用するか、API 操作を呼び出して、HTTPS セキュアアクセラレーションを構成できます。

1. ApsaraVideo Live コンソールを使用して HTTPS セキュアアクセラレーションを構成する方法については、「HTTPS セキュアアクセラレーションを構成する」をご参照ください。

2. SetLiveDomainCertificate 操作を呼び出して、ドメイン名の証明書設定を構成します。

次のサンプルコードは、Java 用サーバー SDK を使用してドメイン名の証明書設定を構成する例を示しています。

// <> 内のパラメーターを実際の値に置き換えます。
        DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
        IAcsClient client = new DefaultAcsClient(profile);
        SetLiveDomainCertificateRequest setLiveDomainCertificateRequest =new SetLiveDomainCertificateRequest();
        setLiveDomainCertificateRequest.setDomainName("<DomainName>");
        setLiveDomainCertificateRequest.setSSLProtocol("on");
        setLiveDomainCertificateRequest.setCertName("<CertName>");
        setLiveDomainCertificateRequest.setCertType("<Upload>");
        setLiveDomainCertificateRequest.setSSLPub("<-----BEGIN CERTIFICATE-----\n" +
                "MIIDRjCCAq+gAwI********************\n" +
                "**************************\n" +
                "-----END CERTIFICATE----->");
        setLiveDomainCertificateRequest.setSSLPri("<-----BEGIN RSA PRIVATE KEY-----\n" +
                "MIICXAIBAAKBgQDO********************\n" +
                "****************************\n" +
                "-----END RSA PRIVATE KEY----->");
        try {
            SetLiveDomainCertificateResponse response = client.getAcsResponse(setLiveDomainCertificateRequest);
            System.out.println(new Gson().toJson(response));
            //todo something /* TODO 処理を追加 */
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
説明
  • 上記の例では、<CertName> という名前の HTTPS 証明書が <DomainName> ドメイン名に構成されています。証明書のタイプは <Upload>、公開鍵は <-----BEGIN CERTIFICATE***>、秘密鍵は <-----BEGIN RSA PRIVATE KEY*****> です。

  • 公開鍵と秘密鍵は、[PEM] フォーマットのみをサポートしています。

  • 証明書が構成されると、証明書は Certificate Management Service に保存されます。Certificate Management Service コンソールで証明書を表示するには、[証明書管理] > [SSL 証明書管理] を選択し、[アップロードされた証明書の管理] タブをクリックします。

  • 詳細については、「Java 用サーバー SDK を使用する」をご参照ください。

関連 API 操作:

API 操作

説明

参照

SetLiveDomainCertificate

ドメイン名の証明書を有効または無効にし、証明書情報を変更します。

SetLiveDomainCertificate

DescribeLiveCertificateList

証明書をクエリします。

DescribeLiveCertificateList

DescribeLiveCertificateDetail

証明書の詳細をクエリします。

DescribeLiveCertificateDetail

BatchDeleteLiveDomainConfigs

複数のドメイン名の構成を一度に削除します。

BatchDeleteLiveDomainConfigs

強制リダイレクト

重要

この機能を構成する前に、HTTPS 証明書が構成されていることを確認してください。

ApsaraVideo Live コンソールを使用するか、API 操作を呼び出して、強制リダイレクトを構成できます。

  1. ApsaraVideo Live コンソールを使用して強制リダイレクトを構成する方法については、「強制リダイレクトを構成する」をご参照ください。

  2. BatchSetLiveDomainConfigs 操作を呼び出して、強制リダイレクトを構成します。

次のサンプルコードは、Java 用サーバー SDK を使用して強制リダイレクトを構成する例を示しています。

        // <> 内のパラメーターを実際の値に置き換えます。
        DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
        IAcsClient client = new DefaultAcsClient(profile);
        BatchSetLiveDomainConfigsRequest batchSetLiveDomainConfigsRequest =new BatchSetLiveDomainConfigsRequest();
        batchSetLiveDomainConfigsRequest.setDomainNames("<DomainNames>");
        batchSetLiveDomainConfigsRequest.setFunctions("[{\"functionArgs\":[{\"argName\":\"enable\",\"argValue\":\"on\"}],\"functionName\":\"https_force\"}]");
        try {
            BatchSetLiveDomainConfigsResponse response = client.getAcsResponse(batchSetLiveDomainConfigsRequest);
            System.out.println(new Gson().toJson(response));
            //todo something /* TODO 処理を追加 */
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
説明
  • 上記の例では、<DomainNames> ドメイン名に強制リダイレクトが構成されています。これにより、HTTP リクエストは強制的に HTTPS にリダイレクトされます。

  • Java 用サーバー SDK を使用するJava 用サーバー SDK の詳細については、「」をご参照ください。

関連 API 操作:

API 操作

説明

参照

BatchSetLiveDomainConfigs

一度に複数のドメイン名を構成します。

Functions パラメーターの https_force 属性を使用して、強制リダイレクトを構成できます。

BatchSetLiveDomainConfigs

使用上の注意

アクション

説明

[無効にする][有効にする] HTTPS

  • HTTPS を [無効にする] と、ApsaraVideo Live は HTTPS リクエストをサポートしなくなります。さらに、ApsaraVideo Live は証明書と秘密鍵を削除します。

  • HTTPS を [有効にする] と、証明書を有効にするには、証明書と秘密鍵を再度アップロードする必要があります。

証明書と秘密鍵をアップロードする

  • ドメイン名に対して [HTTPS セキュアアクセラレーション] を有効にした後、証明書と秘密鍵の両方を PEM 形式でアップロードする必要があります。

    説明

    ApsaraVideo Live は、NGINX ベースの Tengine Web サーバーを使用します。そのため、ApsaraVideo Live は NGINX で読み取ることができる PEM 証明書のみをサポートしています。

  • ApsaraVideo Live は、サーバー名表示(SNI)情報を使用する SSL および TLS ハンドシェイクのみをサポートしています。

  • アップロードされた証明書は秘密鍵と一致する必要があります。そうでない場合、証明書と秘密鍵の検証は失敗します。

  • 更新された証明書が有効になるまで 1 時間かかります。

  • システムは、パスワードが構成されている秘密鍵をサポートしていません。

証明書を表示する

証明書を表示できます。ただし、秘密鍵は機密情報であるため表示できません。証明書情報は安全に保管してください。

証明書を変更または編集する

証明書を変更または編集できます。更新された証明書が有効になるまで 1 時間かかります。この操作を実行するときは注意してください。