Harbor私有仓库添加SSL证书
目录
1 自签证书
自签证书使用起来比较复杂,需要在拉取镜像的机器配置自签证书。推荐申请免费证书或购买证书。
1.1 生成证书
1.1.1 创建 CA 证书
- 生成 CA 证书私钥
openssl genrsa -out ca.key 4096
- 生成 CA 证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Shanghai/L=Shanghai/O=example/OU=Personal/CN=bwcxtech.com" \
-key ca.key \
-out ca.crt
1.1.2 创建IP证书
生成私钥
openssl genrsa -out test.key 4096
生成证书签名请求 CSR
openssl req \
-sha512 \
-new \
-subj "/C=CN/ST=Shanghai/L=Shanghai/O=example/OU=Personal/CN=192.168.10.2" \
-key test.key \
-out test.csr
生成 x509 v3 扩展
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:192.168.10.2
EOF
创建 Harbor 访问证书
openssl x509 \
-req \
-sha512 \
-days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in test.csr \
-out test.crt
将 crt 转换为 cert ,以供 Docker 使用
openssl x509 -inform PEM -in test.crt -out test.cert
1.1.3 创建域名证书
- 生成私钥
openssl genrsa -out harbor.bwcxtech.com.key 4096
- 生成证书签名请求 CSR
openssl req \
-sha512 \
-new \
-subj "/C=CN/ST=Shanghai/L=Shanghai/O=example/OU=Personal/CN=*.harbor.bwcxtech.com" \
-key harbor.bwcxtech.com.key \
-out harbor.bwcxtech.com.csr
- 生成 x509 v3 扩展
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor.bwcxtech.com
DNS.2=*.harbor.bwcxtech.com
DNS.3=hostname
EOF
- 创建 Harbor 访问证书
openssl x509 \
-req \
-sha512 \
-days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.bwcxtech.com.csr \
-out harbor.bwcxtech.com.crt
这里365是证书有效期 推荐3650。这个大家随意。
- 将 crt 转换为 cert ,以供 Docker 使用
openssl x509 -inform PEM -in harbor.bwcxtech.com.crt -out harbor.bwcxtech.com.cert
最终在目录下得到如下文件:
1.2 修改配置
按以上步骤生成证书后,修改harbor.cfg
两处需要修改 修改之后先关闭harbor
docker-compose stop
执行
./prepare
更新一下配置文件 执行
./install.sh
重新安装并启动
1.3 Docker 访问
将拷贝证书至Docker的证书配置目录
mkdir -p /etc/docker/certs.d/harbor.bwcxtech.com/
cp harbor.bwcxtech.com.cert /etc/docker/certs.d/harbor.bwcxtech.com/
cp harbor.bwcxtech.com.key /etc/docker/certs.d/harbor.bwcxtech.com/
cp ca.crt /etc/docker/certs.d/harbor.bwcxtech.com/
这里的harbor.bwcxtech.com
目录一定要与服务保持一致,如果有端口,也应该用:
连接带上。
2 购买证书或申请免费证书(推荐)
只需执行上述第二步即可