【问题标题】:Consum certificate and key from a secret in a route in openshift在 openshift 的路由中使用密钥中的证书和密钥
【发布时间】:2021-05-05 23:46:45
【问题描述】:

如何在openshift中使用已有的证书和密钥创建一个secret,然后将其添加到路由中

【问题讨论】:

    标签: certificate key openshift kubernetes-secrets


    【解决方案1】:

    您可以使用oc create secret tls 创建一个“tls”类型的新Secret (see documentation):

    # Create a new TLS secret named tls-secret with the given key pair:
    oc create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key
    

    要创建安全的Route,您有两个选择(reencryptedge)。对于这两个选项,您都希望将证书/密钥作为文件(PEM 编码文件中的证书/密钥对)。

    1. reencrypt 将使用自定义证书创建 Route 并重新加密 TLS 终止,这意味着您的 OpenShift 路由器将终止 TLS,然后使用您指定的证书重新加密流量:
    $ oc create route reencrypt --service=frontend --cert=tls.crt --key=tls.key --dest-ca-cert=destca.crt --ca-cert=ca.crt --hostname=www.example.com
    
    1. edge 终止意味着当您通过 Route 查询您的应用程序时,OpenShift 路由器将提供您指定的证书:
    $ oc create route edge --service=frontend --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=www.example.com
    

    如果您想了解详细信息,请查看the documentation

    【讨论】:

    • 谢谢!您在哪里告诉使用秘密 tls-secret 获取密钥和证书的路线?和密钥/证书对是 .pem ,我应该将其更改为 .key 和 .crt 吗?在这种情况下,路由的 yml 文件会是什么样子?
    • 不确定是否可以为Route 使用 Secret,据我所知,您需要如上所述在 Route 对象中指定证书/密钥。实际文件名无关紧要,证书/密钥只需 PEM 编码 (-----BEGIN PRIVATE KEY-----...)。
    【解决方案2】:

    路由目前无法以这种方式访问​​机密。

    有一个历史悠久的未解决问题(2015 年): https://github.com/openshift/origin/issues/2162

    openshift acme operator 可以自动保护路由,也许这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      • 2013-01-02
      • 2011-08-17
      • 2019-02-05
      • 1970-01-01
      • 2014-09-03
      相关资源
      最近更新 更多