跳至內容

為 DomainMapping 使用自訂 TLS 憑證

功能可用性:Knative v0.24 以來為 測試版
  • 測試版功能經過充分測試,啟用它們被認為是安全的。對整體功能的支援不會被放棄,儘管詳細資訊可能會以不相容的方式變更。

透過提供現有TLS 憑證的參考,您可以指示 DomainMapping 使用該憑證來保護對應的服務。請注意,對於使用此功能的服務,將會跳過使用外部網域 TLS的自動憑證建立。

先決條件

  • 您已依照設定自訂網域中的步驟進行,現在有一個可運作的 DomainMapping
  • 您必須從憑證授權單位提供者或自我簽署憑證取得 TLS 憑證。

程序

  1. 假設您已從憑證授權單位提供者取得 certkey 檔案,或擁有自我簽署憑證,請執行下列命令來建立純 Kubernetes TLS Secret

    使用 kubectl 建立 secret

    kubectl create secret tls <tls-secret-name> --cert=path/to/cert/file --key=path/to/key/file
    
    其中 <tls-secret-name> 是正在建立的 secret 物件的名稱。

  2. 更新您的 DomainMapping YAML 檔案,如下所示使用新建立的 secret

    apiVersion: serving.knative.dev/v1beta1
    kind: DomainMapping
    metadata:
      name: <domain-name>
      namespace: <namespace>
    spec:
      ref:
        name: <service-name>
        kind: Service
        apiVersion: serving.knative.dev/v1
    # tls block specifies the secret to be used
      tls:
        secretName: <tls-secret-name>
    
    其中

    • <tls-secret-name> 是在上一個步驟中建立的 TLS secret 的名稱。
    • <domain-name> 是您想要將服務對應到的網域名稱。
    • <namespace> 是包含 DomainMappingService 物件的命名空間。
    • <service-name> 是將對應到網域的服務名稱。
  3. 驗證 DomainMapping 狀態

    1. 執行下列命令來檢查狀態
      kubectl get domainmapping <domain-name>
      
      狀態的 URL 欄位應顯示已對應的網域,且配置已更新為 https
      NAME                      URL                               READY   REASON
      <domain-name>             https://<domain-name>             True
      
    2. 如果服務公開公開,請執行下列命令來驗證它是否可用
      curl https://<domain-name>
      
      如果憑證是自我簽署的,請將 -k 旗標新增至 curl 命令來跳過驗證。

我們使用分析和 cookie 來了解網站流量。為了達到該目的,您使用我們網站的相關資訊會與 Google 分享。了解更多。