12.3.9.2. 手动重新部署路由器证书
要手动重新部署路由器证书,您必须将新的路由器证书添加到名为 router-certs
的 secret 中,然后重新部署路由器:
使用以下步骤的其余部分切换到
default
项目:oc project default
$ oc project default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的路由器最初是在 OpenShift Container Platform 3.1 或更早版本创建的,它可能仍然使用环境变量来存储证书,这已被使用 service serving 证书 secret。
运行以下命令并查找
OPENSHIFT_CA_DATA
、OPENSHIFT_CERT_DATA
、OPENSHIFT_KEY_DATA
环境变量:oc set env dc/router --list
$ oc set env dc/router --list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果这些变量存在,请创建以下
ClusterRoleBinding
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存在这些变量,请运行以下命令删除它们:
oc set env dc/router OPENSHIFT_CA_DATA- OPENSHIFT_CERT_DATA- OPENSHIFT_KEY_DATA- OPENSHIFT_MASTER-
$ oc set env dc/router OPENSHIFT_CA_DATA- OPENSHIFT_CERT_DATA- OPENSHIFT_KEY_DATA- OPENSHIFT_MASTER-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
获取证书。
- 如果您使用外部证书颁发机构(CA)为证书进行签名,请创建新的证书并根据内部流程将其提供给 OpenShift Container Platform。
如果使用内部 OpenShift Container Platform CA 签署证书,请运行以下命令:
重要以下命令生成内部签名的证书。它仅被信任 OpenShift Container Platform CA 的客户端信任。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这些命令生成以下文件:
- 名为 router.crt 的新证书。
- 签名 CA 证书链 /etc/origin/master/ca.crt 的副本。如果您使用中间 CA,则此链可以包含多个证书。
- 对应的名为 router.key 的私钥。
创建新文件以串联生成的证书:
cat router.crt /etc/origin/master/ca.crt router.key > router.pem
$ cat router.crt /etc/origin/master/ca.crt router.key > router.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意只有在使用由 OpenShift CA 签名的证书时,此步骤才有效。如果使用自定义证书,则应该使用正确的 CA 链的文件而不是
/etc/origin/master/ca.crt
。在生成新的 secret 前,备份当前 secret:
oc get -o yaml --export secret router-certs > ~/old-router-certs-secret.yaml
$ oc get -o yaml --export secret router-certs > ~/old-router-certs-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建新 secret 以容纳新证书和密钥,并替换现有 secret 的内容:
oc create secret tls router-certs --cert=router.pem \ --key=router.key -o json --dry-run | \ oc replace -f -
$ oc create secret tls router-certs --cert=router.pem \
1 --key=router.key -o json --dry-run | \ oc replace -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- router.pem 是包含您生成的证书的串联的文件。
重新部署路由器:
oc rollout latest dc/router
$ oc rollout latest dc/router
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最初部署路由器时,会将注解添加到路由器的服务,该服务自动创建一个名为
router-metrics-tls
的 服务证书 secret。要手动重新部署
router-metrics-tls
证书,可通过删除 secret、删除并重新添加注解到路由器服务来重新创建服务证书,然后重新部署router-metrics-tls
secret:从
router
服务中删除以下注解:oc annotate service router \ service.alpha.openshift.io/serving-cert-secret-name- \ service.alpha.openshift.io/serving-cert-signed-by-
$ oc annotate service router \ service.alpha.openshift.io/serving-cert-secret-name- \ service.alpha.openshift.io/serving-cert-signed-by-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除现有的
router-metrics-tls
secret。oc delete secret router-metrics-tls
$ oc delete secret router-metrics-tls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新添加注解:
oc annotate service router \ service.alpha.openshift.io/serving-cert-secret-name=router-metrics-tls
$ oc annotate service router \ service.alpha.openshift.io/serving-cert-secret-name=router-metrics-tls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow