1、配置自定义签名
1.1、使用openssl配置自定义签名
默认主机名harbor.yangyang.com
1.1.1、配置CA证书
# 配置ca证书私钥
openssl genrsa -out ca.key 4096
# 生成ca证书,CN配置为harbor主机名
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.yangyang.com" \
-key ca.key \
-out ca.crt1.1.2、生成服务器证书
该证书包含一个crt文件和key文件
# 生成一个私钥
openssl genrsa -out harbor.yangyang.com.key 4096
# 生成一个签名请求
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.yangyang.com" \
-key harbor.yangyang.com.key \
-out harbor.yangyang.com.csr1.1.3、生成一个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.yangyang.com
DNS.2=harbor
DNS.3=hostname
EOF1.1.4、使用v3.ext为harbor主机生成证书
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.yangyang.com.csr \
-out harbor.yangyang.com.crt1.1.5、将证书提供给harbor
mkdir -p /data/cert/
cp harbor.yangyang.com.crt /data/cert/
cp harbor.yangyang.com.key /data/cert/1.1.6、将证书提供给docker
ca.crt 域名.cert 域名.key
# 将crt文件转换成cert文件
openssl x509 -inform PEM -in harbor.yangyang.com.crt -out harbor.yangyang.com.cert
# 如果将默认的 nginx 端口 443 映射到其他端口,请创建 /etc/docker/certs.d/harbor.yangyang.com:port 或/etc/docker/certs.d/harbor_IP:port 文件夹。
mkdir -p /etc/docker/certs.d/harbor.yangyang.com/
cp harbor.yangyang.com.cert /etc/docker/certs.d/harbor.yangyang.com/
cp harbor.yangyang.com.key /etc/docker/certs.d/harbor.yangyang.com/
cp ca.crt /etc/docker/certs.d/harbor.yangyang.com/
systemctl restart docker1.2、使用easy-rsa配置自定义签名(可选)(方法二)
2、修改配置
2.1、修改harbor.yml
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
# 此处配置主机的FQDN
hostname: harbor.yangyang.com
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80
# https related config
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
# 此处配置harbor密钥文件
certificate: /data/cert/harbor.yangyang.com.crt
private_key: /data/cert/harbor.yangyang.com.key
# enable strong ssl ciphers (default: false)
# strong_ssl_ciphers: false
2.2、FQDN配置
hostname -f 查看FQDN 注意格式必须为XXX.XXX的域名格式
hostname 的主机名可以为XXXX的主机名格式
如果没有域名只有一个主机名会报错,误认为是 Docker Hub 上 某个用户的仓库。
最好查看一下 /etc/hosts文件格式
2.3、docker客户端配置
在客户端主机docker密钥文件夹需要上传密钥文件 /etc/docker/cert.d/harbor.yangyang.com/
否则会报错tls: failed to verify certificate: x509: certificate signed by unknown authority