4

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

更新:

看起来是不可能的。除非我通过 pod... 请参见此处 ---> https://access.redhat.com/solutions/1582583

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

有人可以告诉我别的吗?请 !

4

4 回答 4

3

不幸的是,据我所知,它无法像secret. route如果您只想route使用文件以外的其他方式制作对象yaml,则可以route使用以下 CLI 进行配置。

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

希望对你有帮助:^)

于 2018-10-26T13:06:22.687 回答
2

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

于 2020-06-25T08:28:36.150 回答
0

可以使用 TLS 处理路由模板,而无需共享证书和私钥。

  1. 将 CA 证书、服务器证书和服务器私钥存储在 TLS 机密中
  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

于 2021-08-31T17:06:41.170 回答
0

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

它变成了这样。TLS 有一个秘密类型

oc create secret tls mytlsSecret --cert= --key=

希望这有帮助!

于 2019-10-17T20:02:56.613 回答