全部產品
Search
文件中心

Alibaba Cloud Service Mesh:在ASM網關的CLB側建立HTTPS監聽

更新時間:Apr 01, 2025

ASM網關支援HTTPS安全支援和認證動態載入功能,以此提高ASM網關的安全性。您可以在ASM網關的CLB側綁定認證,建立HTTPS類型的監聽。HTTPS請求將在CLB側解密,然後以HTTP請求的形式發送給後端的網關Pod。本文介紹如何在ASM網關的CLB側綁定認證,建立HTTPS類型的監聽。

前提條件

步驟一:準備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. 建立認證面板,選擇阿里雲簽發認證,從認證列表最下方單擊建立SSL認證

    4. 數位憑證管理服務頁面的左側導覽列,選擇認證管理 > SSL認證管理

    5. 單擊上傳認證頁簽的上傳認證,填寫認證名稱aliyun.com,將產生的根憑證和私密金鑰對應上傳到認證檔案認證私密金鑰輸入框中。單擊確定,並忽略憑證鏈結的提示。

  3. 通過傳統型負載平衡CLB控制台建立認證。具體操作,請參見選擇阿里雲簽發認證

步驟二:建立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建立一個HTTPS類型的CLB。以443為連接埠的HTTPS請求將在CLB側解密,然後以HTTP請求的形式發送給後端的Pod的80連接埠。YAML中${YOUR_CERT_ID}步驟一擷取。

  2. 執行以下命令,部署入口網關。

    kubectl apply -f ingressgateway.yaml

步驟三:驗證HTTPS監聽是否成功

  1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇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監聽配置成功。