使用自建的 CA 證書來自簽署和啟用 HTTPS 通信。
(1)生成 CA認證
- 使用 OpenSSL 生成一個 2048位的私鑰
- 這是 自建 CA(證書頒發機構) 的私鑰,后續會用它來簽發證書。
# 1創建CA認證
cd 到harbor
[root@localhost harbor]# pwd
/haohao/harbor# 創建一個文件(名字隨便取)
mkdir mycert
openssl genrsa -out mycert/private.key 2048
(2)創建自簽名證書(CA 證書)
openssl req -x509 -new -nodes -key mycert/private.key \
-subj "/CN=hh.harbor.com" -days 7120 \
-out mycert/cert.crt
- 使用剛才的私鑰,生成一個 自簽名的 X.509 證書(就是 CA 證書)。
- 有效期是 7120 天(快 20 年了)。
-subj "/CN=hh.harbor.com"
表示該證書的域名是這個。- 保存為
mycert/cert.crt
。
這個證書會用在 Harbor 上啟用 HTTPS 訪問,客戶端需要信任這個證書才能避免瀏覽器警告。
(3) 查看生成的 CA 證書信息
openssl x509 -in mycert/cert.crt -noout -text
- 查看剛生成的自簽名證書內容。
- 包括證書有效期、使用者信息、公鑰內容等。
(4) 修改 Harbor 配置文件(啟用 HTTPS)
hostname: hh.harbor.comhttps:port: 444certificate: /haohao/harbor/mycert/cert.crtprivate_key: /haohao/harbor/mycert/private.key
-
修改
harbor.yml
配置文件,告訴 Harbor:- 用哪個證書來啟用 HTTPS(
crt
文件) - 用哪個私鑰來解密 HTTPS 通信(
key
文件) hostname
設置為 Harbor 的訪問域名
- 用哪個證書來啟用 HTTPS(
(5) 安裝 Harbor
./install.sh
- 安裝 Harbor,并根據修改后的
harbor.yml
重新部署服務。 - Harbor 會基于你的 HTTPS 配置自動啟用安全訪問。
(6) 訪問 Web UI,可能遇到瀏覽器警告
- 瀏覽器看到是自簽名證書,因為它不是由瀏覽器信任的權威 CA 簽發的,所以會警告。
- 解決方法(僅開發環境下可用):輸入
thisisunsafe
,繞過瀏覽器阻止,強制訪問頁面。
作用:
- 防止賬號密碼被明文傳輸
- 提高安全性
- 支持 Docker 客戶端登錄 Harbor 時使用安全通道(
docker login https://harbor...
)