TL;DR:如果Rancher SSL证书没有签名,但是其他外部系统(如OIDC提供程序)签名,我如何使Rancher知道内部根CA?
作为一个码头容器,我在我的一个VM上有一个正在运行的v2.6.3
版本的Rancher。它使用由DigiCert签名的SSL证书,因为我正在使用它来管理自己网络之外的集群。Web登录名仅在我的网络中使用。我在Keycloak中使用了一个OIDC客户端。由于这个密钥斗篷只能从我的内部网络访问(而且应该继续),所以它有一个由我的内部CA签名的证书。
为了实现这个工作,我需要让Rancher知道根CA。因此,我将其挂载到/etc/rancher/ssl/cacerts.pem
的容器中,并附带有DigiCert签名的证书和密钥(SSL_CERT_DIR
设置为/etc/rancher/ssl
)。
在这样做之后,我可以成功地用我的内部密钥披风来配置OIDC。在添加根CA之前,当Rancher试图读取https://<KEYCLOAK REALM AUTH URL>/.well-known/openid-configuration
时,我得到了一个证书错误。
现在Rancher正在将这个根CA证书添加到用户可以从UI下载的访问集群的kubeconfig
文件中。当他们想要使用kubectl
访问群集时,这会导致证书错误。现在,我可以告诉每个人下载配置时只需删除certificate-authority-data
。但是这感觉就像--尽管它是有效的--这并不是让Rancher知道证书的正确方式。如果我正确地理解了这里描述的文档和结果,那么只有当您的牧场使用由非公共CA签名的证书时,才应该使用文件/etc/rancher/ssl/cacerts.pem
。
还有其他方法让兰彻知道我的内部CA吗?不幸的是,我只能在我遵循上述结果的文档中找到这篇文章。
提前感谢!
发布于 2022-07-05 15:53:00
我想出来了!
我在牧场主舵图选项中发现了一些关于额外可信CA的内容。它引导我找到Helm图,在部署中找到了这个块
{{- if .Values.additionalTrustedCAs }}
- mountPath: /etc/pki/trust/anchors/ca-additional.pem
name: tls-ca-additional-volume
subPath: ca-additional.pem
readOnly: true
- mountPath: /etc/rancher/ssl/ca-additional.pem
name: tls-ca-additional-volume
subPath: ca-additional.pem
readOnly: true
{{- end }}
{{- if .Values.privateCA }}
# Pass CA cert into rancher for private CA
- mountPath: /etc/rancher/ssl/cacerts.pem
name: tls-ca-volume
subPath: cacerts.pem
readOnly: true
{{- end }}
显然,向信任存储添加额外的CA证书就像将CA安装到/etc/rancher/ssl/ca-additional.pem
和/etc/pki/trust/anchors/ca-additional.pem
一样容易。
它已经试过了,它就像一种魅力!OIDC登录工作,当我下载kubeconfig
时,没有设置certificate-authority-data
。
https://stackoverflow.com/questions/72854469
复制相似问题