DomainMappingでカスタムTLS証明書を使用する¶
機能の可用性:Knative v0.24以降ベータ版
- ベータ版機能は十分にテストされており、有効化しても安全とみなされます。全体的な機能のサポートは削除されませんが、詳細は非互換な方法で変更される可能性があります。
既存のTLS証明書への参照を提供することにより、DomainMapping
にその証明書を使用してマップされたサービスを保護するように指示できます。external-domain-tlsを使用した自動証明書作成は、この機能を使用するサービスではスキップされることに注意してください。
前提条件¶
- カスタムドメインの設定の手順に従って、動作する
DomainMapping
が既に用意されている必要があります。 - 認証局プロバイダーからのTLS証明書、または自己署名証明書が必要です。
手順¶
-
認証局プロバイダーから
cert
ファイルとkey
ファイルを取得したか、自己署名証明書を持っていると仮定して、次のコマンドを実行して、プレーンなKubernetes TLSシークレットを作成します。kubectlを使用してシークレットを作成します
ここで、kubectl create secret tls <tls-secret-name> --cert=path/to/cert/file --key=path/to/key/file
<tls-secret-name>
は作成されるシークレットオブジェクトの名前です。 -
DomainMapping
YAMLファイルを更新して、新しく作成されたシークレットを使用します。ここで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シークレットの名前です。<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コマンドに
curl https://<domain-name>
-k
フラグを追加して検証をスキップします。
- 次のコマンドを実行して状態を確認します