从 secret 创建 OpenShift TLS 路由

Create OpenShift TLS route from secret

我想知道(以及如何做)从包含我的证书和密钥(或 JAVA 密钥库)或 2 个秘密的秘密在 OpenShift 中创建一个安全的 (tls) 路由(1 个带有证书,另一个带有密钥)这样我就不需要将它们都直接写在“'route.yaml'”文件中,而只需引用它们......

更新:

看起来不可能。除非我确实直通吊舱... 看这里---> https://access.redhat.com/solutions/1582583

不过,我不希望它成为最终答案,因为我认为这应该得到支持。

有人可以告诉我其他情况吗?请!

不幸的是,据我所知,它无法将证书配置为 route 中的 secret。如果您只想使用 yaml 文件以外的其他方式创建 route 对象,则可以使用以下 CLI 配置 route

oc create route edge --service=frontend \
    --cert=${MASTER_CONFIG_DIR}/ca.crt \
    --key=${MASTER_CONFIG_DIR}/ca.key \
    --ca-cert=${MASTER_CONFIG_DIR}/ca.crt \
    --hostname=www.example.com

希望对你有帮助:^)

我的 RFE 被 RedHat 关闭了,因为它应该是 OpenShift4 的要求。 与此同时,我开始使用 tls secrets 并直接在我的容器中管理 TLS 终止,而不是在路由上。

事情是这样的。 TLS

有一个秘密类型
oc create secret tls mytlsSecret --cert= --key=

希望对您有所帮助!

根据 https://github.com/openshift/origin/issues/2162 的说法,此功能不会很快出现在 OpenShift 中。

可以在不共享证书和私钥的情况下使用 TLS 处理路由模板。

  1. 在 TLS secret 中存储 CA 证书、服务器证书和服务器私钥
  2. oc 获取 tls.key/tls.crt/ca.crt 文件的秘密
  3. 在路由模板中设置:
  • TLS_PRIVATE_KEY/TLS_CERTIFICATE/CA_CERTIFICATE 参数
  • tls.key: ${TLS_PRIVATE_KEY}, tls.certificate: ${TLS_CERTIFICATE}, tls.caCertificate: ${CA_CERTIFICATE}
  1. oc 进程模板与 -p "TLS_PRIVATE_KEY=$(cat tls.key)" -p "TLS_CERTIFICATE=$(cat tls.crt)" -p " CA_CERTIFICATE=$(cat ca.crt)"

多行参数的思路来自:https://github.com/openshift/origin/issues/10687

Cert Utils Operator is Ability to populate route certificates的功能之一。

假设您有路由 myroute 和秘密 mysecret:

$ oc annotate route/myroute cert-utils-operator.redhat-cop.io/certs-from-secret=mysecret

运营商随后将负责使用来自秘密的 certificate/key/ca 证书更新路由。