1.申请证书
openssl req -new -newkey rsa:2048 -sha256 -nodes -subj '/C=CN/ST=wuhan/L=wuhan/O=Season Corporation Limited/OU=IT Dept./CN=*.apps.com' -out *.apps.com.csr -keyout *.apps.com.key 将csr和key发给证书管理员申请证书
2.合成证书(申请下来的正式有四部分,apps.com.cer Root-CA.cer Issuing-CA.cer apps.com.key)
cat apps.com.cer Root-CA.cer Issuing-CA.cer apps.com.key >router.pem
3.备份老证书
oc get -o yaml --export secret router-certs -n default > ~/old-router-certs-secret.yaml
4.替换证书
oc create secret tls router-certs --cert= router.pem -n default --key=apps.com.key -o json --dry-run |oc replace -f –
5.重启router,此时检查可以看到router证书已经更新
oc rollout latest dc/router
6.到这一步官方文档已经结束,但实际执行过程中发现openshift console竟然报找不到证书,检查发现,在master-config文件中引用了ca证书,而该证书并没有更换为最新的,于是更新master-config.yaml ca: shift.crt (cat Root-CA.cer Issuing-CA.cer > shift.crt)
7.重启master api
master-restart api
8.router证书更换完了后,pod之间的访问还是有问题,主机对更换的证书不信任,于是每个节点都要将根证书添加为信任证书
cp Root-CA.cer /etc/pki/ca-trust/source/anchors/ && cd /etc/pki/ca-trust/source/anchors/ && update-ca-trust enable && update-ca-trust extract && curl https://console.apps.com (for test)
以上是具体的操作步骤,因为环境不尽相同,所以该问题并未在Redhat找到解决方案,谨做记录。