如何更换harbor的证书
如何更换Harbor的证书:
在安装Kubernetes的过程中,由于一些用户会使用Ansible或其他自动化方式安装全套环境,
而不甚了解其内部原理时,一些组件的克隆和迁移会遇到麻烦。
比如当需要复制harbor用于其他环境时,会产生证书未授权的问题。
通过以下步骤,可以解决这个问题。
解决方案:
第一步:修改harbor证书签名请求文件harbor-csr.json:
{
"CN": "harbor",
"hosts": [
"127.0.0.1",
"10.25.40.xx",
"harbor.xxxxxx.com"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "HangZhou",
"L": "XS",
"O": "k8s",
"OU": "System"
}
]
}
- 一般情况下,harbor证书需要客户端认证,因此需要在签名请求中替换掉hosts中的地址。
第二步:重新生成证书文件:
/opt/kube/bin/cfssl gencert \
-ca=/etc/kubernetes/ssl/ca.pem \
-ca-key=/etc/kubernetes/ssl/ca-key.pem \
-config=/etc/kubernetes/ssl/ca-config.json \
-profile=kubernetes harbor-csr.json | /opt/kube/bin/cfssljson -bare harbor
第三步:关闭harbor:
docker-compose stop
第四步:修改harbor的配置文件:
hostname = 10.25.40.xx
ssl_cert = /etc/kubernetes/ssl/harbor.pem
ssl_cert_key = /etc/kubernetes/ssl/harbor-key.pem
- hostname,修改为新的harbor的ip地址。
- ssl_cert和ssl_cert_key,如果在其他路径生成了新的证书,则修改;反之不用修改。
第五步:重新载入harbor配置文件:
./prepare
第六步:启动harbor:
docker-compose stop