Dict.CN 在线词典, 英语学习, 在线翻译 ------------- MyGitee My腾云code My51cto

Happy_EveryDay

可以平凡 不可以平庸 无爱则无忧,无欲则无求,无怒而无敌,无怨才是佛。所有烦恼,都是放不下的执著 开源技群 328035181 MyGitee

博客园 首页 新随笔 管理
192.168.91.164私服harbor

1、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"

image

 

image

 

 

验证证书输出 CA:TRUE

openssl x509 -in server.crt -text -noout | grep -A2 "Basic Constraints"

 

image

 

显示

Basic Constraints:
CA:TRUE   

#显示TRUE 为根证书 ca.crt,拥有签发子证书权限,ca私钥 ca.key 如果对外开放环境,风险极高

 

显示

Basic Constraints:
CA:FALSE

#显示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

 

image

 

image

 

image

 

3、重新生成配置并重启

cd /root/harbor
./prepare
docker compose down
docker compose up -d

 

image

 

 

 

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

image

 

5、更新 harbor 证书并重启 harbor

cd /root/harbor
./prepare
docker compose down
docker compose up -d

image

 

 

 

6、CA证书(根证书)生成

root/harbor/cert 目录下生成ca.crt

 

 

 

 

#1 生成CA根密钥+根证书 ca.key ca.crt
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor-ca" \
-key ca.key -out ca.crt

#2 生成Harbor业务私钥
openssl genrsa -out server.key 4096

#3 生成证书请求
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor" \
-key server.key -out server.csr

#4 v3扩展(包含IP SAN 192.168.91.164)
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
IP.1=192.168.91.164
EOF

#5 CA签发业务证书 server.crt
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in server.csr -out server.crt

 

image

 

image

 

 

显示

Basic Constraints:
CA:TRUE   

#显示TRUE 为根证书 ca.crt,拥有签发子证书权限,ca私钥 ca.key 如果对外开放环境,风险极高

 

显示

Basic Constraints:
CA:FALSE

#显示FALSE 为业务证书,不能签发其他证书,只能给服务(Harbor、nginx)使用,比如服务端(Harbor):部署 server.crt + server.key

 

 

 

 

7、所有 k8s 节点部署证书(master-166/node2-167/node3-168)

image

 

image

 

 

 

 

如果是 containerd(KubeSphere 大概率这个)

# 在master-166/node2-167/node3-168节点主机分别执行

mkdir -p /etc/containerd/certs.d/192.168.91.164
scp root@192.168.91.164:/root/harbor/cert/ca.crt /etc/containerd/certs.d/192.168.91.164/
systemctl restart containerd

 

image

 

 #####模拟 containerd 使用本地存放的 ca.crt 去校验 Harbor 服务证书
 K8s 所有节点 执行
openssl s_client -connect 192.168.91.164:443 -CAfile /etc/containerd/certs.d/192.168.91.164/ca.crt
 

image

 

 

 

image

 

 

 
 
 
 出现问题:
failed to pull image ... tls: failed to verify certificate: x509: certificate signed by unknown authority
解决:
/etc/pki/ca-trust/source/anchors/ 【系统全局信任】
 
所有k8s节点都执行

cp /etc/containerd/certs.d/192.168.91.164/ca.crt         /etc/pki/ca-trust/source/anchors/ca.crt
update-ca-trust extract
systemctl restart containerd

#####验证证书是否被系统成功载入

openssl s_client -connect 192.168.91.164:443

 

image

 

image

 

 
 
 
 
 
 
 
 
 
 
 

8、所有 k8s 节点禁用私有仓库使用 HTTP 方式

#修改所有节点 docker daemo
vi /etc/docker/daemon.json
#{ "insecure-registries":["192.168.91.164"] } 配置删除掉

#重启 docker
systemctl daemon-reload
systemctl restart docker

image

 

 
posted on 2026-07-28 17:22  2026cn  阅读(24)  评论(0)    收藏  举报