生成证书颁发机构证书 生成 CA 证书私钥 openssl genrsa -out ca.key 4096 生成 CA 证书 openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=MyPersonal Root CA" \ -key ca.key \ -out ca.crt 生成服务器证书 生成私钥。 openssl genrsa -out harbor.rojers.com.key 4096 生成证书签名请求 (CSR)。 openssl req -sha512 -new \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.rojers.com" \ -key harbor.rojers.com.key \ -out harbor.rojers.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.rojers.com DNS.2=PXC03 EOF 使用 v3.ext 文件为您的 Harbor 主机生成证书。 openssl x509 -req -sha512 -days 3650 \ -extfile v3.ext \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -in harbor.rojers.com.csr \ -out harbor.rojers.com.crt 向 Harbor 和 Docker 提供证书 将服务器证书和密钥复制到 Harbor 主机上的证书文件夹中 cp harbor.rojers.com.crt /data/cert/ cp harbor.rojers.com.key /data/cert/ 将 harbor.rojers.com.crt 转换为 harbor.rojers.com.cert,供 Docker 使用。Docker 守护程序将 .crt 文件解释为 CA 证书,将 .cert 文件解释为客户端证书。 openssl x509 -inform PEM -in harbor.rojers.com.crt -out harbor.rojers.com.cert 将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中 cp harbor.rojers.com.cert /etc/docker/certs.d/harbor.rojers.com:3443/ cp harbor.rojers.com.key /etc/docker/certs.d/harbor.rojers.com:3443/ cp ca.crt /etc/docker/certs.d/harbor.rojers.com:3443/ 配置结果 /etc/docker/certs.d/ └── harbor.rojers.com:port ├── harbor.rojers.com.cert <-- Server certificate signed by CA ├── harbor.rojers.com.key <-- Server key signed by CA └── ca.crt <-- Certificate authority that signed the registry certificate 注意: 若docker客户端为win环境,由于创建目录不能有冒号的问题,导致无法配置信任的证书,只能添加:"insecure-registries": ["harbor.rojers.com:3443"] 配置