具有自定义TLS证书链的OpenShift Web控制台仍然是“不安全的”

时间:2017-10-12 10:28:55

标签: ssl openshift x509certificate openshift-origin certificate-authority

在OpenShift Origin 3.6中,使用高级安装方法,我为Web控制台和路由器配置了自定义TLS证书。

对于Web控制台,我在Ansible清单中使用的参数是:

openshift_master_named_certificates=[{"certfile": "/root/star.paas.certs/star.paas.local.cert.pem", "keyfile": "/root/star.paas.certs/star.paas.local.key.pem", "names": ["master.paas.local"], "cafile": "/root/star.paas.certs/ca-chain.cert.pem"}]
openshift_master_overwrite_named_certificates=true

对于路由器,参数是:

openshift_hosted_router_certificate={"certfile": "/root/star.paas.certs/star.paas.local.cert.pem", "keyfile": "/root/star.paas.certs/star.paas.local.key.pem", "cafile": "/root/star.paas.certs/ca-chain.cert.pem"}

在TLS证书方面,已创建自定义证书颁发机构并将其保存到文件ca-chain.cert.pem。并且已生成基于此CA的自定义证书(star.paas.local.key.pemstar.paas.local.cert.pem)。

您可能已经注意到,我对OpenShift Web控制台使用相同的证书链(在master.paas.local:8443处提供)和嵌入式路由器(对于路由为https://*.paas.local的应用程序)。< / p>

然后,当我想访问Web控制台时,先决条件是将根CA导入我的浏览器。

关键是:当我使用Chromium并转到master.paas.local:8443时,连接被视为不安全(NET :: ERR_CERT_AUTHORITY_INVALID)。当我要求更多信息时,我注意到证书层次结构不完整:

Certificate details in Chromium

有趣的是,这不会发生在Firefox中,这是我所知道的唯一符合预期行为的浏览器:

Certificate details in Firefox

相反,OpenShift为我的应用程序提供的所有TLS安全公共路由被我测试的所有浏览器都认为是安全的,其证书链与我用于Web控制台的证书链完全相同。

在所有现代浏览器中提供Web控制台时,是否有一种工作方式可以使openshift(-ansible)考虑我的自定义CA? 在我看来,OpenShift Web控制台在TLS握手期间不会发送根/中间CA.

1 个答案:

答案 0 :(得分:0)

ansible playbook似乎支持为named_certificates提供cafile,并放置文件。但是,正在运行的系统不支持cafile键,因此会被忽略。如果您将certfile作为完整包(bundle + cert)提供,那么它应该开始工作。

我提交了PR to the playbook to handle this task