一、获得证书

证书可以选择权威机构颁发的证书,也可以通过自签名ssl生成需要的自签名ssl证书。

{## 二、配置和安装

1、获取yourdomain.com.crt和yourdomain.com.key文件后,将它们放入以下目录/root/cert/

cp yourdomain.com.crt /root/cert/
  cp yourdomain.com.key /root/cert/

2、接下来,编辑harbor.cfg文件,更新主机名和协议,并设置ssl_certssl_cert_key路径

#set hostname
  hostname = reg.yourdomain.com
  #set ui_url_protocol
  ui_url_protocol = https
  ......
  #The path of cert and key files for nginx, they are applied only the protocol is set to https 
  ssl_cert = /root/cert/yourdomain.com.crt
  ssl_cert_key = /root/cert/yourdomain.com.key

3、如果Harbor已在运行,请停止并删除现有实例,您的镜像数据保留在文件系统中。如果没运行,则跳过此步骤。

docker-compose down -v

4、重新生成配置

./prepare

5、重新运行实例

docker-compose up -d

三、验证

为Harbor设置HTTPS后,通过以下步骤进行验证:

1、打开浏览器并输入地址:https//reg.yourdomain.com。它应该显示Harbor的用户界面。

2、在安装了Docker的计算机上,请确保-insecure-registry配置不存在,并且将上述步骤中生成的ca.crt复制到/etc/docker/certs.d/reg.yourdomain.com(或Harbor主机IP),如果该目录不存在,则创建它。

如果您将nginx443端口映射到另一个端口,那么您应该创建/etc/docker/certs.d/reg.yourdomain.com:port(或Harbor主机IP:port)。然后运行docker命令来验证设置,例如:

docker login reg.yourdomain.com

如果您已将nginx 443端口映射到另一个端口,则需要将端口添加到登录命令中,如下所示:

docker login reg.yourdomain.com:port