This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.10.3.3. TLS 証明書を使用してカスタムドメインでサービスを保護する
Knative サービスのカスタムドメインを設定したら、TLS 証明書を使用して、マップされたサービスを保護できます。これを行うには、Kubernetes TLS シークレットを作成してから、作成した TLS シークレットを使用するように DomainMapping
CR を更新する必要があります。
前提条件
-
Knative サービスのカスタムドメインを設定し、有効な
DomainMapping
CR がある。 - 認証局プロバイダーからの TLS 証明書または自己署名証明書がある。
-
認証局プロバイダーまたは自己署名証明書から
cert
ファイルおよびkey
ファイルを取得している。 -
OpenShift CLI (
oc
) をインストールしている。
手順
Kubernetes TLS シークレットを作成します。
oc create secret tls <tls_secret_name> --cert=<path_to_certificate_file> --key=<path_to_key_file>
$ oc create secret tls <tls_secret_name> --cert=<path_to_certificate_file> --key=<path_to_key_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat OpenShift Service Mesh を OpenShift Serverless インストールのイングレスとして使用している場合は、Kubernetes TLS シークレットに次のラベルを付けます。
“networking.internal.knative.dev/certificate-uid": “<value>”
“networking.internal.knative.dev/certificate-uid": “<value>”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cert-manager などのサードパーティーのシークレットプロバイダーを使用している場合は、Kubernetes TLS シークレットに自動的にラベルを付けるようにシークレットマネージャーを設定できます。Cert-manager ユーザーは、提供されたシークレットテンプレートを使用して、正しいラベルを持つシークレットを自動的に生成できます。この場合、シークレットのフィルターリングはキーのみに基づいて行われますが、この値には、シークレットに含まれる証明書 ID などの有用な情報が含まれている可能性があります。
注記{cert-manager-operator} はテクノロジープレビュー機能です。詳細は、{cert-manager-operator} のインストール に関するドキュメントを参照してください。
作成した TLS シークレットを使用するように
DomainMapping
CR を更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
DomainMapping
CR のステータスがTrue
であることを確認し、出力のURL
列に、マップされたドメインをスキームのhttps
で表示していることを確認します。oc get domainmapping <domain_name>
$ oc get domainmapping <domain_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME URL READY REASON example.com https://example.com True
NAME URL READY REASON example.com https://example.com True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: サービスが公開されている場合は、以下のコマンドを実行してこれが利用可能であることを確認します。
curl https://<domain_name>
$ curl https://<domain_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書が自己署名されている場合は、
curl
コマンドに-k
フラグを追加して検証を省略します。