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

:イングレスゲートウェイの CLB インスタンスに HTTPS リスナーを作成する

最終更新日:Jul 08, 2025

イングレスゲートウェイを使用して、HTTPS と動的な証明書の読み込みを有効にすることができます。 これにより、ゲートウェイのセキュリティが確保されます。 イングレスゲートウェイの Classic Load Balancer (CLB) インスタンスに証明書をバインドすることで、HTTPS リスナーを作成できます。 CLB インスタンスは HTTPS リクエストを HTTP リクエストに復号化し、HTTP リクエストをイングレスゲートウェイポッドに転送します。 このトピックでは、イングレスゲートウェイの CLB インスタンスに証明書をバインドすることで HTTPS リスナーを作成する方法について説明します。

前提条件

ステップ 1:CLB インスタンスにバインドする証明書を準備する

証明書と秘密鍵が作成されている

aliyun.com で使用できる証明書と秘密鍵が既にある場合は、秘密鍵に aliyun.com.key、証明書に aliyun.com.crt という名前を付ける必要があります。

証明書と秘密鍵が作成されていない

証明書と秘密鍵を作成していない場合は、openssl を使用して、aliyun.com の証明書と秘密鍵を以下の手順で生成できます。

  1. 次のコマンドを実行して、ルート証明書と秘密鍵を作成します。

    openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=myexample Inc./CN=aliyun.com' -keyout aliyun.root.key -out aliyun.root.crt
  2. SSL 証明書を作成します。

    1. サーバーロードバランサー CLB コンソール で、左側のナビゲーションウィンドウから [サーバーロードバランサー CLB] > [証明書管理] を選択します。

    2. [証明書管理] ページで、[証明書の作成] をクリックします。

    3. [証明書の作成] パネルで、[Alibaba Cloud 発行の証明書] を選択し、証明書リストの下部にある [SSL 証明書の作成] をクリックします。

    4. [デジタル証明書管理サービス] ページで、左側のナビゲーションウィンドウから [証明書管理] > [SSL 証明書管理] を選択します。

    5. [証明書のアップロード] タブの [証明書のアップロード] をクリックし、[証明書名]aliyun.com と入力し、生成されたルート証明書と秘密鍵を [証明書ファイル] フィールドと [証明書の秘密鍵] フィールドにアップロードします。 [OK] をクリックし、証明書チェーンのプロンプトは無視します。

  3. サーバーロードバランサー CLB コンソール で証明書を作成します。 詳細については、「Alibaba Cloud 発行の証明書を選択する」をご参照ください。

ステップ 2:HTTPS リスナーを作成する

ASM では、カスタムイングレスゲートウェイを作成できます。 YAML ファイルでパラメーターを設定できます。 詳細については、「KubeAPI を使用してイングレスゲートウェイを管理する」をご参照ください。

  1. ingressgateway.yaml ファイルに次のコンテンツを追加します。

    spec:
     ....
      ports:
        - name: http-0
          port: 80
          protocol: HTTP
          targetPort: 80
        - name: https-1
          port: 443
          protocol: HTTPS
          targetPort: 80
      ....
      serviceAnnotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: 'https:443'
        ....
      serviceType: LoadBalancer

    serviceAnnotations を使用して CLB インスタンスを作成します。 CLB インスタンスは、ポート 443 で受信した HTTPS リクエストを HTTP リクエストに復号化し、HTTP リクエストをイングレスゲートウェイポッドのポート 80 に転送します。 YAML ファイルの ${YOUR_CERT_ID} は、ステップ 1 から取得します。

  2. 次のコマンドを実行して、イングレスゲートウェイをデプロイします。

    kubectl apply -f ingressgateway.yaml

ステップ 3:HTTPS リスナーが有効になっていることを確認する

  1. ASM コンソール にログインします。 左側のナビゲーションウィンドウで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションウィンドウで、[ASM ゲートウェイ] > [イングレスゲートウェイ] を選択します。

  3. [イングレスゲートウェイ] ページで、ターゲットゲートウェイの [エンドポイント] を確認します。

    [エンドポイント] は、ターゲットゲートウェイの IP アドレスです。

  4. 次のコマンドを実行して、HTTPS 経由で productpage サービスにアクセスします。

    前の手順で取得した ${イングレスゲートウェイの IP アドレス} を使用します。

    curl -k -H Host:a.aliyun.com --resolve a.aliyun.com:443:${イングレスゲートウェイの IP アドレス}  https://a.aliyun.com/productpage -I

    出力例:

    HTTP/2 200
    date: Fri, 13 Jan 2023 07:11:45 GMT
    content-type: text/html; charset=utf-8
    content-length: 5294
    vary: Accept-Encoding
    x-envoy-upstream-service-time: 23

    暗号化されたトラフィックは、CLB インスタンスを通過するときにプレーンテキストに復号化され、クラスターに入ります。 この結果は、HTTPS リスナーが有効になっていることを示しています。