自签证书
自签证书使用起来比较复杂,需要在拉取镜像的机器配置自签证书。推荐申请免费证书或购买证书。
生成证书
创建 CA 证书
1
| openssl genrsa -out ca.key 4096
|
1 2 3 4
| 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
|
创建IP证书
生成私钥
1
| openssl genrsa -out test.key 4096
|
生成证书签名请求 CSR
1 2 3 4 5 6
| 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 扩展
1 2 3 4 5 6 7
| 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 访问证书
1 2 3 4 5 6 7 8
| 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 使用
1
| openssl x509 -inform PEM -in test.crt -out test.cert
|
创建域名证书
1
| openssl genrsa -out harbor.bwcxtech.com.key 4096
|
1 2 3 4 5 6
| 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
|
1 2 3 4 5 6 7 8 9 10 11 12
| 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
|
1 2 3 4 5 6 7 8
| 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 使用
1
| openssl x509 -inform PEM -in harbor.bwcxtech.com.crt -out harbor.bwcxtech.com.cert
|
最终在目录下得到如下文件:

修改配置
按以上步骤生成证书后,修改harbor.cfg

两处需要修改
修改之后先关闭harbor
执行
更新一下配置文件
执行
重新安装并启动
Docker 访问
将拷贝证书至Docker的证书配置目录
1 2 3 4
| 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
目录一定要与服务保持一致,如果有端口,也应该用:
连接带上。
购买证书或申请免费证书(推荐)
只需执行上述第二步即可