1、首先需要准备好ssl证书,没有安全的ssl证书的话,可以用openssl配置harbor自签名证书
生成CA证书私钥:
openssl genrsa -out ca.key 4096
2、生成CA证书(有两种配置,域名或者IP两种方式,下边分别说明)
域名方式:
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=test.com" \
-key ca.key \
-out ca.crt
# req 产生证书签发申请命令
# -x509 签发X.509格式证书命令。X.509是最通用的一种签名证书格式。
# -new 生成证书请求
# -key 指定私钥文件
# -nodes 表示私钥不加密
# -out 输出
# -subj 指定用户信息
# -days 有效期
IP方式:
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=172.30.29.20" \
-key ca.key \
-out ca.crt
# req 产生证书签发申请命令
# -x509 签发X.509格式证书命令。X.509是最通用的一种签名证书格式。
# -new 生成证书请求
# -key 指定私钥文件
# -nodes 表示私钥不加密
# -out 输出
# -subj 指定用户信息
# -days 有效期
3、生成harbor服务器证书:
域名方式:
openssl genrsa -out test.com.key 4096
IP方式:
openssl genrsa -out 172.30.29.20.key 4096
4、生成证书签名请求:
域名方式:
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=test.com" \
-key test.com.key \
-out test.com.csr
IP方式:
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=172.30.29.20" \
-key 172.30.29.20.key \
-out 172.30.29.20.csr
5、生成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=test.com
DNS.2=test
DNS.3=hostname
EOF
IP方式:
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:172.30.29.20
EOF
6、使用v3.ext 文件为harbor主机生成证书:
域名方式:
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in test.com.csr \
-out test.com.crt
# x509 签发X.509格式证书命令。
# -req 表示证书输入请求。
# -days 表示有效天数
# -extensions 表示按OpenSSL配置文件v3_req项添加扩展。
# -CA 表示CA证书,这里为ca.crt
# -CAkey 表示CA证书密钥,这里为ca.key
# -CAcreateserial 表示创建CA证书序列号
# -extfile 指定文件
IP方式:
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in 172.30.29.20.csr \
-out 172.30.29.20.crt
# x509 签发X.509格式证书命令。
# -req 表示证书输入请求。
# -days 表示有效天数
# -extensions 表示按OpenSSL配置文件v3_req项添加扩展。
# -CA 表示CA证书,这里为ca.crt
# -CAkey 表示CA证书密钥,这里为ca.key
# -CAcreateserial 表示创建CA证书序列号
# -extfile 指定文件
7、签发harbor证书:
域名方式:
mkdir -p /data/cert/
cp test.com.crt /data/cert/
cp test.com.key /data/cert/
IP方式:
mkdir -p /data/cert/
cp 172.30.29.20.crt /data/cert/
cp 172.30.29.20.key /data/cert/
8、签发docker证书:
域名方式:
openssl x509 -inform PEM -in test.com.crt -out test.com.cert
IP方式:
openssl x509 -inform PEM -in 172.30.29.20.crt -out 172.30.29.20.cert
9、拷贝证书:
域名方式:
mkdir -p /etc/docker/certs.d/test.com
cp test.com.cert /etc/docker/certs.d/test.com/
cp test.com.key /etc/docker/certs.d/test.com/
cp ca.crt /etc/docker/certs.d/test.com/
IP方式:
mkdir -p /etc/docker/certs.d/172.30.29.20
cp 172.30.29.20.cert /etc/docker/certs.d/172.30.29.20/
cp 172.30.29.20.key /etc/docker/certs.d/172.30.29.20/
cp ca.crt /etc/docker/certs.d/172.30.29.20/
10、重启docker:
systemctl restart docker
---上述重启docker后,需要修改harbor配置:
重启harbor:
cd /root/harbor
./install.sh
上述搞好后,web直接https访问,登录,账号/密码: admin/Harbor12345
11、配置成https后,要拉去镜像的服务器需要做下边配置:
(因配置的harbor--CA私钥证书,不是安全的ssl证书,故拉取的时候,还是需要拉取的服务器做下述配置)
新增/etc/docker/daemon.json配置:
修改 /usr/lib/systemd/system/docker.service 配置文件
重启docker服务:
systemctl daemon-reload ##重新加载daemon配置
systemctl restart docker ##重启docker服务
标签:29.20,https,证书,harbor,配置,key,test,172.30,com From: https://blog.51cto.com/u_14175560/6433507