Harbor配置https認證


由於Harbor不附帶任何證書,它默認使用HTTP來提供注冊表請求。但是,強烈建議為任何生產環境啟用安全性。
因為測試使用,使用自簽名證書:

1、創建CA證書

首先創建個目錄存放

mkdir /root/ca -p
cd /root/ca
以下命令創建CA證書
openssl req  -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt

其中:(req:申請證書簽署請求;-newkey 新密鑰 ;-x509:可以用來顯示證書的內容,轉換其格式,給CSR簽名等X.509證書的管理工作,這里用來自簽名。)
一路回車出現Common Name 輸入IP或域名
Common Name (eg, your name or your server's hostname) []:47.52.25.8

2、生成證書簽名請求

openssl req  -newkey rsa:4096 -nodes -sha256 -keyout 47.52.25.80.key -out 47.52.25.80.csr
一路回車出現Common Name 輸入IP或域名
Common Name (eg, your name or your server's hostname) []:47.52.25.8

3、生成證書

備注:若需要添加多個地址(允許鏈接的ip等)

echo subjectAltName = IP:47.52.25.8 > extfile.cnf
openssl x509 -req -days 365 -in 47.52.25.80.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out 47.52.25.80.crt

4、配置harbor.cfg

  #set hostname
  hostname = xxxx     #域名或ip
  #set ui_url_protocol
  uiurlprotocol = https    #這里改為https****
  ......
  #The path of cert and key files for nginx, they are applied only the protocol is set to https
  ssl_cert = /cert/47.52.25.8.crt     #crt位置
  ssl_cert_key = /cert/47.52.25.8.key  #key的位置

5、配置啟動harbor

    # docker-compose down
    # ./prepare
    #  docker-compose up –d

6、測試

1、訪問,https://配置的ip或域名(若nginx的443配置了其他端口需要加上對應端口號)
2、# docker login xxxx

若報錯x509: certificate signed by unknown authority:

需要把之前制作的ca證書添加到信任(因為是自簽名證書):

# mkdir –p /etc/docker/certs.d/47.52.25.8
# cp ca.crt /etc/docker/certs.d/47.52.25.8/ca.crt
# systemc   restart docker.service

注意:
每一個客戶端都需要復制上面的ca.crt到Docker相應目錄,然后重啟Docker。

再次測試docker login xxxx,成功登陸~
瀏覽器需要添加“訪問例外”,根據提示進行操作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM