7.4. 信任配置
当您启用任何传输加密功能时,您必须确保所有调用证书颁发机构(CA)的客户端都发出用于传输加密的证书。
有很多信任必须保证的:
- 集群外部客户端,如浏览器或其他应用程序。这是 OpenShift Serverless 的范围。
- OpenShift Serverless 系统组件,如 Activator、Queue-Proxy 和 Ingress-Controller。
- 集群内部客户端,如 Knative Service 或其他工作负载。
为确保 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: |
-----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
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 连接。