












192.168.91.164私服harbor
mkdir -p /root/harbor/cert
cd /root/harbor/cert
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 \
-keyout server.key -out server.crt \
-subj "/CN=192.168.91.164"


验证证书输出 CA:TRUE
openssl x509 -in server.crt -text -noout | grep -A2 "Basic Constraints"

显示
Basic Constraints:
CA:TRUE
#显示TRUE 为根证书 ca.crt,拥有签发子证书权限,ca私钥 ca.key 如果对外开放环境,风险极高
显示
Basic Constraints:
CA:FALSE
#业务证书,不能签发其他证书,只能给服务(Harbor、nginx)使用,比如服务端(Harbor):部署 server.crt + server.key
2、harbor.yml,打开 https 配置
hostname: 192.168.91.164
http:
port: 80
https:
port: 443
#业务证书
certificate: /root/harbor/cert/server.crt
private_key: /root/harbor/cert/server.key



3、重新生成配置并重启
cd /root/harbor
./prepare
docker compose down
docker compose up -d

4、重新生成带 SAN 的证书(标准根治方案,推荐)
登录 harbor 主机 192.168.91.164,执行整套命令
cd /root/harbor/cert
# 创建openssl配置文件,写入SAN
cat > openssl-san.cnf <<EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_ext
prompt = no
[req_distinguished_name]
CN = 192.168.91.164
[v3_ext]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.91.164
EOF
# 生成证书
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 \
-keyout server.key -out server.crt \
-config openssl-san.cnf

5、更新 harbor 证书并重启 harbor
cd /root/harbor
./prepare
docker compose down
docker compose up -d

6、所有 k8s 节点部署证书
# 在master-166/node2-167/node3-168节点主机分别执行
mkdir -p /etc/docker/certs.d/192.168.91.164
scp root@192.168.91.164:/root/harbor/cert/server.crt /etc/docker/certs.d/192.168.91.164/
systemctl daemon-reload
systemctl restart docker

7、所有 k8s 节点禁用私有仓库使用 HTTP 方式
#修改所有节点 docker daemo
vi /etc/docker/daemon.json
#{ "insecure-registries":["192.168.91.164"] } 配置删除掉#重启 docker
systemctl daemon-reload
systemctl restart docker

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。