5.7.10.2. 安全路由
安全路由指定路由的 TLS 终止,并可选择性地提供密钥和证书。
OpenShift Container Platform 中的 TLS 终止依赖于 SNI 来提供自定义证书。任何端口 443 上接收的非SNI 流量均使用 TLS 终止和默认证书处理(这可能与请求的主机名不匹配,从而导致验证错误)。
安全路由可以使用以下三种安全 TLS 终止类型中的任何一种:
边缘终止
使用边缘终止时,TLS 终止在将流量代理到目的地之前发生在路由器上。TLS 证书由路由器的前端提供,因此它们必须配置为路由,否则将 路由器的默认证书 用于 TLS 终止。
使用 Edge 终止的安全路由
由于 TLS 在路由器终止,因此不会加密从路由器到端点的连接。
边缘终止的路由可以指定 insecureEdgeTerminationPolicy
,它允许禁用或重定向在不安全的方案(HTTP
)上的流量。insecureEdgeTerminationPolicy
允许的值有:无
或为空(代表禁用),允许
或重定向
。默认的 insecureEdgeTerminationPolicy
是禁用不安全方案中的流量。常见用例是允许通过安全方案提供内容,但通过不安全的方案提供资产(示例图像、样式表和 javascript)。
使用 Edge 终止的安全路由允许 HTTP 流量
使用 Edge 终止的安全路由将 HTTP 流量重定向到 HTTPS
passthrough 终止
如果 passthrough 终止,加密的流量会直接发送到目的地,而路由器不会提供 TLS 终止。因此不需要密钥或证书。
使用 Passthrough 终止的安全路由
目标 pod 负责为端点上的流量提供证书。这是目前唯一可以支持要求客户端证书的方法(也称为双向验证)。
passthrough 路由也可以具有 insecureEdgeTerminationPolicy
。唯一有效的值为 None
(或为空,代表禁用) 或重定向
。
再加密终止
再加密是边缘终止的一种变体,即路由器通过证书终止 TLS,然后再加密它与端点的连接,这可能有不同的证书。因此,连接的完整路径已被加密,即使在内部网络上。路由器使用健康检查来确定主机的真实性。
使用 Re-Encrypt 终止的安全路由
如果 destinationCACertificate
字段留空,路由器会自动利用为服务用证书生成的证书颁发机构,并注入每个 pod 作为 /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
。这允许使用端到端加密的新路由,而无需为路由生成证书。这适用于自定义路由器或 F5 路由器,这可能不允许 destinationCACertificate
,除非管理员已允许它。
重新加密路由可以有一个 insecureEdgeTerminationPolicy
,其所有值都与 edge-terminated 路由相同。