企业级Docker私有仓库部署(https)

部署环境

  • Centos7.3 x64
  • docker-ce-17.06.0
  • docker-compose-1.15.0
  • Python-2.7.5(系统默认)

部署目标

  • 使用HTTPS协议
  • 支持Clair(在Harbor1.2版本会支持)
支持HTTPS

生产环境最好由权威CA机构签发证书(免费的推荐StartSSL,可参考https://www.wosign.com/Support/Nginx.html),这里为了测试方便使用自签发的证书

  • 创建CA证书

    1
    openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
  • 生成CSR公钥

    1
    openssl req -newkey rsa:4096 -nodes -sha256 -keyout hub.wow.key -out hub.wow.csr
  • 颁发证书

    1
    openssl x509 -req -days 365 -in hub.wow.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out hub.wow.crt
  • 部署证书

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    cp hub.wow.crt hub.wow.key /data/harbor/keys/
    vim /data/harbor/harbor.cfg
    hostname = hub.wow
    ui_url_protocol = https
    ssl_cert = /data/harbor/keys/hub.wow.crt
    ssl_cert_key = /data/harbor/keys/hub.wow.key
    cd /data/harbor
    ./prepare 重新生成配置文件
    docker-compose down
    docker-compose up
  • 通过HTTPS访问私有仓库

    1
    2
    3
    4
    5
    WebUI: https://how.wow
    Docker Client:
    [root@hub ~]# docker login -u admin -p Harbor12345 hub.wow
    Login Succeeded

问题

docker login时提示x509: certificate signed by unknown authority
解决方法: 自签名的证书不被系统信任,需要cp ca.crt /etc/docker/certs.d/hub.wow/, 无需重启docker

坚持原创分享,您的支持将鼓励我继续创作