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

Alibaba Cloud Service Mesh:ASM ゲートウェイで Certificate Management Service が提供する SSL 証明書を使用する

最終更新日:Nov 06, 2025

Certificate Management Service (Original SSL Certificate) は、証明書の発行と管理のための Alibaba Cloud プラットフォームです。Certificate Management Service コンソールからデータプレーンクラスターに証明書を直接デプロイできます。これらの証明書は ASM ゲートウェイで使用できます。このトピックでは、ASM ゲートウェイで Certificate Management Service の SSL 証明書を使用する方法について説明します。

前提条件

ステップ 1: Certificate Management Service に権限を付与する

Certificate Management Service は、AliyunCASDefaultRole ロールを使用して ACK クラスターにアクセスし、管理します。このロールに権限を付与する必要があります。

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[権限付与] をクリックします。

  2. [RAM ロール] タブをクリックし、検索ボックスに AliyunCASDefaultRole と入力し、[権限の管理] をクリックします。

    [AliyunCASDefaultRole Does Not Exist] というメッセージが表示された場合は、まず Certificate Management Service の RAM ロールを作成し、そのロールに権限を付与する必要があります。
  3. [権限管理] ダイアログボックスで、[+ 権限の追加] をクリックします。[クラスター] 列で、ドロップダウンリストから管理するクラスターの名前を選択します。[名前空間] 列で、ドロップダウンリストから istio-system を選択します。[権限管理] 列で、[制限付きユーザー] を選択します。

  4. [承認の送信] をクリックします。

ステップ 2: 証明書を ACK クラスターにデプロイする

このトピックで使用される証明書のドメイン名は test.com です。必要に応じてドメイン名を変更できます。

  1. 証明書をデプロイします。

    1. デプロイメントサービスを初めて使用する場合は、ページに表示されるプロンプトに従って必要な権限を付与します。権限付与後、デプロイメントタスクを作成できます。権限付与の詳細については、「クラウドリソースへのアクセス権限を付与する」をご参照ください。

    2. 証明書サービスコンソールにログインします

    3. 左側のナビゲーションウィンドウで、[証明書管理] > [SSL 証明書] を選択します

    4. SSL 証明書管理 ページで、証明書タイプのタブをクリックします。証明書リストで証明書を見つけ、[アクション] 列の [デプロイ] をクリックします。

      プライベート CA によって発行された証明書は、[アップロードされた証明書] タブに同期されます。そのタブで管理できます。

    5. タスクの作成 ページの リソースの選択 ステップで、クラウドサービスとリソースを選択または調整します。1 つ以上のクラウドサービスとそれに対応するリソースを選択できます。次に、プレビューして送信する をクリックします。

      • システムは、選択された SSL 証明書を、すでに SSL 証明書が設定されているクラウドサービスリソースと自動的に照合します。表示されるダイアログボックスで、[OK] をクリックします。システムは、照合されたリソースを [選択されたリソース] セクションに追加します。その後、必要に応じて選択されたリソースを調整できます。

        image

      • システムは、クラウドサービスのすべてのリソースを自動的に検出してプルします。対応するクラウドサービスで宛先リソースが見つからない場合は、次の項目を確認してください。

        • [合計リソース] セクションで、リソースが同期されているかどうかを確認します。リソースが同期中の場合 (図のようにステータスがグレー表示されている場合)、同期が完了するまで待ちます。同期に必要な時間は、クラウドサービス内のリソースの数によって異なります。

          image

        • 同期が完了してもリソースが見つからない場合は、証明書デプロイメントの前提条件が満たされているかどうかを確認してください。

    6. タスクのプレビュー パネルで、証明書インスタンスとクラウドサービスリソースに関する情報を確認します。すべてが正しい場合は、送信 をクリックします。

      プレビューページには、クラウドサービスに一致する証明書の数と、消費されるデプロイメントクォータの数が表示されます。一致する証明書の数が 0 の場合、選択した証明書がクラウドサービスリソースと一致しないことを意味し、デプロイメントが失敗します。この場合は、選択した証明書を注意深く確認してください。

  2. Secret 情報を取得します。

    kubectl -n istio-system get secret -l alibabacloud.com/ssl-certificate-identifier=${SSL 証明書の CertIdentifier}

    期待される出力:

    NAME                TYPE                DATA   AGE
    cas-cert-305xxx76   kubernetes.io/tls   2      10m

ステップ 3: ゲートウェイルールを更新する

httpbin アプリケーションをデプロイしたときに作成されたゲートウェイルールを更新します。host と前のステップで作成した Secret を追加します。

kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: httpbin
  namespace: default
spec:
  selector:
    istio: ingressgateway
  servers:
    - hosts:
        - '*'
      port:
        name: test
        number: 80
        protocol: HTTP
    - hosts:
        - 'test.com'
      port:
        name: https
        number: 443
        protocol: HTTPS
      tls:
        mode: SIMPLE
        credentialName: ${前のステップで取得した Secret の名前}
EOF

ステップ 4: アクセスをテストする

  1. ゲートウェイの IP アドレスを取得します。

    export GATEWAY_IP=$(kubectl get service istio-ingressgateway -n istio-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}' )
  2. テストリクエストを送信します。

    curl -vk --resolve test.com:443:${GATEWAY_IP} https://test.com/status/418

    期待される出力:

    * test.com:443:47.xx.xxx.146 を DNS キャッシュに追加しました
    * ホスト名 test.com が DNS キャッシュで見つかりました
    *   47.xx.xxx.146 に接続しようとしています...
    * TCP_NODELAY が設定されました
    * test.com (47.xx.xxx.146) のポート 443 (#0) に接続しました
    * ALPN, h2 を提供
    * ALPN, http/1.1 を提供
    * 証明書検証場所を正常に設定しました:
    *   CAfile: /etc/pki/tls/certs/ca-bundle.crt
      CApath: なし
    ...
    * TLSv1.3 / TLS_AES_256_GCM_SHA384 を使用した SSL 接続
    * ALPN, サーバーは h2 の使用を受け入れました
    * サーバー証明書:
    *  subject: CN=test.com; O=myexample organization
    *  開始日: Jul 28 09:19:32 2025 GMT
    *  有効期限: Jul 28 09:19:32 2026 GMT
    *  発行者: O=myexample Inc.; CN=test.com
    *  SSL 証明書検証結果: ローカル発行者証明書を取得できません (20)、続行します。
    * HTTP2 を使用、サーバーは複数回の使用をサポート
    * 接続状態が変更されました (HTTP/2 確認済み)
    * アップグレード後、ストリームバッファー内の HTTP/2 データを接続バッファーにコピーしています: len=0
    ...
    > GET /status/418 HTTP/2
    > Host: test.com
    > User-Agent: curl/7.61.1
    > Accept: */*
    > 
    ...
    < HTTP/2 418 
    < server: istio-envoy
    < date: Tue, 29 Jul 2025 08:45:10 GMT
    < x-more-info: http://tools.ietf.org/html/rfc2324
    < access-control-allow-origin: *
    < access-control-allow-credentials: true
    < content-length: 135
    < x-envoy-upstream-service-time: 5
    < 
    
        -=[ teapot ]=-
    
           _...._
         .'  _ _ `.
        | ."` ^ `". _,
        \_;`"---"`|//
          |       ;/
          \_     _/
            `"""`
    * ホスト test.com への接続 #0 は維持されました

    応答には TLS 関連の情報と 418 応答が含まれています。