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.2.3. 使用 TLS 证书使用自定义域保护服务
为 Knative 服务配置了自定义域后,您可以使用 TLS 证书来保护映射的服务。要做到这一点,您必须创建一个 Kubernetes TLS secret,然后更新 DomainMapping
CR 以使用您创建的 TLS secret。
先决条件
-
为 Knative 服务配置了自定义域,并有一个正常工作的
DomainMapping
CR。 - 您有来自证书授权机构供应商或自签名证书的 TLS 证书。
-
您已从证书授权中心(CA)提供商或自签名证书获取
cert
和key
文件。 -
安装 OpenShift CLI(
oc
)。
流程
创建 Kubernetes TLS secret:
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 安装的 ingress,请使用以下内容标记 Kubernetes TLS secret:
“networking.internal.knative.dev/certificate-uid": “<value>”
“networking.internal.knative.dev/certificate-uid": “<value>”
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用第三方 secret 供应商(如 cert-manager),您可以配置 secret manager 来自动标记 Kubernetes TLS secret。cert-manager 用户可以使用提供的 secret 模板自动生成带有正确标签的 secret。在本例中,secret 过滤仅基于键,但这个值可以存储有用的信息,如 secret 包含的证书 ID。
注意{cert-manager-operator} 是一个技术预览功能。如需更多信息,请参阅安装 {cert-manager-operator} 文档。
更新
DomainMapping
CR,以使用您创建的 TLS secret:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证
DomainMapping
CR 状态是否为True
,输出中的URL
列显示了使用 schemehttps
的映射域: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
标志来跳过验证。