7.4. 信任配置
当您启用任何传输加密功能时,您必须确保所有调用证书颁发机构(CA)的客户端都发出用于传输加密的证书。
有很多信任必须保证的:
- 集群外部客户端,如浏览器或其他应用程序。这是 OpenShift Serverless 的范围。
- OpenShift Serverless 系统组件,如 Activator、Queue-Proxy 和 Ingress-Controller。
- 集群内部客户端,如 Knative Service 或其他工作负载。
7.4.1. OpenShift Serverless Serving 组件和 Knative Services 的信任配置
为确保 OpenShift Serverless Serving 组件和 Knative Services 信任发布证书的 CA,您可以在以下命名空间中创建 ConfigMap,标签为 networking.knative.dev/trust-bundle: true
:
knative-serving
- 用于 OpenShift Serverless Serving 的系统组件。
knative-serving-ingress
- 对于 OpenShift Serverless Serving 的入口层。
istio-system
或您自己的 Service Mesh 命名空间- 启用 Service Mesh 集成。
Knative 会使用此标签读取 ConfigMap 中的所有数据密钥,而不考虑名称。一个密钥可以包含一个或多个 CA 或中间证书。如果它们有效,则会将它们添加到 Knative 组件的信任存储中。
这是一个 ConfigMap 示例:
apiVersion: v1 data: cacerts.pem: | 1 -----BEGIN CERTIFICATE----- MIIDDTCCAfWgAwIBAgIQMQuip05h7NLQq2TB+j9ZmTANBgkqhkiG9w0BAQsFADAW MRQwEgYDVQQDEwtrbmF0aXZlLmRldjAeFw0yMzExMjIwOTAwNDhaFw0yNDAyMjAw OTAwNDhaMBYxFDASBgNVBAMTC2tuYXRpdmUuZGV2MIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEA3clC3CV7sy0TpUKNuTku6QmP9z8JUCbLCPCLACCUc1zG FEokqOva6TakgvAntXLkB3TEsbdCJlNm6qFbbko6DBfX6rEggqZs40x3/T+KH66u 4PvMT3fzEtaMJDK/KQOBIvVHrKmPkvccUYK/qWY7rgBjVjjLVSJrCn4dKaEZ2JNr Fd0KNnaaW/dP9/FvviLqVJvHnTMHH5qyRRr1kUGTrc8njRKwpHcnUdauiDoWRKxo Zlyy+MhQfdbbyapX984WsDjCvrDXzkdGgbRNAf+erl6yUm6pHpQhyFFo/zndx6Uq QXA7jYvM2M3qCnXmaFowidoLDsDyhwoxD7WT8zur/QIDAQABo1cwVTAOBgNVHQ8B Af8EBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zAd BgNVHQ4EFgQU7p4VuECNOcnrP9ulOjc4J37Q2VUwDQYJKoZIhvcNAQELBQADggEB AAv26Vnk+ptQrppouF7yHV8fZbfnehpm07HIZkmnXO2vAP+MZJDNrHjy8JAVzXjt +OlzqAL0cRQLsUptB0btoJuw23eq8RXgJo05OLOPQ2iGNbAATQh2kLwBWd/CMg+V KJ4EIEpF4dmwOohsNR6xa/JoArIYH0D7gh2CwjrdGZr/tq1eMSL+uZcuX5OiE44A 2oXF9/jsqerOcH7QUMejSnB8N7X0LmUvH4jAesQgr7jo1JTOBs7GF6wb+U76NzFa 8ms2iAWhoplQ+EHR52wffWb0k6trXspq4O6v/J+nq9Ky3vC36so+G1ZFkMhCdTVJ ZmrBsSMWeT2l07qeei2UFRU= -----END CERTIFICATE----- kind: ConfigMap metadata: labels: networking.knative.dev/trust-bundle: "true" name: knative-bundle 2 namespace: knative-serving
重要
当创建或更新 CA 捆绑包 ConfigMap 时,Serving 组件会自动获取它们,并将 CA 或中间证书添加到其 CA 信任存储中。每个新的 HTTP 连接都会刷新信任存储。
7.4.2. 自定义工作负载上的信任配置
由于 OpenShift Serverless Serving 不控制所有工作负载和管理信任,因此高度依赖于您的运行时和语言,自定义工作负载不在 OpenShift Serverless 范围内。以下是自定义工作负载的其他选项:
- 将 CA 捆绑包添加到构建时的容器镜像。请注意,这会使 CA 轮转复杂,因为您必须在 CA 轮转时重建并重新部署每个应用程序。
- 将 CA 捆绑包挂载到文件系统,如 Secret 或 ConfigMap,并确保您的应用程序使用它来验证 TLS 连接。
- 从环境变量读取 CA 捆绑包,并确保您的应用程序使用它来验证 TLS 连接。
- 使用 Kubernetes API 从 secret 或 ConfigMap 访问 CA 捆绑包,并确保应用程序使用它来验证 TLS 连接。