為 DomainMapping 使用自訂 TLS 憑證¶
功能可用性:Knative v0.24 以來為 測試版
- 測試版功能經過充分測試,啟用它們被認為是安全的。對整體功能的支援不會被放棄,儘管詳細資訊可能會以不相容的方式變更。
透過提供現有TLS 憑證的參考,您可以指示 DomainMapping
使用該憑證來保護對應的服務。請注意,對於使用此功能的服務,將會跳過使用外部網域 TLS的自動憑證建立。
先決條件¶
- 您已依照設定自訂網域中的步驟進行,現在有一個可運作的
DomainMapping
。 - 您必須從憑證授權單位提供者或自我簽署憑證取得 TLS 憑證。
程序¶
-
假設您已從憑證授權單位提供者取得
cert
和key
檔案,或擁有自我簽署憑證,請執行下列命令來建立純 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 物件的名稱。 -
更新您的
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>
是包含DomainMapping
和Service
物件的命名空間。<service-name>
是將對應到網域的服務名稱。
-
驗證
DomainMapping
狀態- 執行下列命令來檢查狀態狀態的
kubectl get domainmapping <domain-name>
URL
欄位應顯示已對應的網域,且配置已更新為https
NAME URL READY REASON <domain-name> https://<domain-name> True
- 如果服務公開公開,請執行下列命令來驗證它是否可用如果憑證是自我簽署的,請將
curl https://<domain-name>
-k
旗標新增至 curl 命令來跳過驗證。
- 執行下列命令來檢查狀態