1 說明
- 前文Centos7搭建Harbor私有倉庫(一)中成功搭建了Harbor,但,是以http方式搭建的,這里我們修改為https方式
- 以下基於鏡像CentOS-7-x86_64-Minimal-1804進行搭建
- 均已
root用戶進行操作
2 生成自簽名證書
這里我們使用https://github.com/Fishdrowned/ssl提供的shell腳本生成ssl證書,在命令行中輸入以下命名:
git clone https://github.com/Fishdrowned/ssl.git #將項目下載到本地
項目的目錄結構如下:
.
├── LICENSE
├── README.md
├── ca.cnf
├── docs
│ ├── chrome-certs-details.png
│ ├── chrome-certs-ok.png
│ ├── chrome-settings-certs-imported.png
│ ├── chrome-settings-certs.png
│ ├── chrome-trust.md
│ └── output.png
├── flush.sh
├── gen.cert.sh
└── gen.root.sh
如果需要修改CA、證書相關信息,可以編輯ca.cnf和gen.cert.sh替換對應的內容。接下來,輸入以下命令生成ssl證書,
./gen.cert.sh registry.anxminise.cc #生成registry.anxminise.cc域名的證書

目錄中,會生成一個out目錄,里面的registry.anxminise.cc目錄存放了生成的證書,內容如下:
.
├── 20181011-0710
│ ├── registry.anxminise.cc.bundle.crt
│ ├── registry.anxminise.cc.crt
│ └── registry.anxminise.cc.csr.pem
├── registry.anxminise.cc.bundle.crt -> ./20181011-0710/registry.anxminise.cc.bundle.crt
├── registry.anxminise.cc.crt -> ./20181011-0710/registry.anxminise.cc.crt
├── registry.anxminise.cc.key.pem -> ../cert.key.pem
└── root.crt -> ../root.crt
其中,registry.anxminise.cc.crt是我們需要的證書,registry.anxminise.cc.key.pem是秘鑰存儲文件,將這兩個文件上傳到Harbor服務器,這里是192.168.1.112服務器。
3 Harbor服務器配置
3.1 配置Harbor的https證書
Harbor服務器上執行以下命令
mkdir -p /data/cert創建證書存放目錄
mv registry.anxminise.cc.crt /data/cert/server.crt #將證書放到Harbor配置目錄下
mv registry.anxminise.cc.key.pem /data/cert/server.key #將秘鑰放到Harbor配置目錄下
ll /data/cert #查看目錄內容

3.2 配置Harbor以https啟動
cd /opt/harbor #進入到harbor目錄
vim harbor.cfg #編輯harbor的配置文件
編輯以下內容:
hostname = registry.anxminise.cc #配置harbor服務器的域名
ui_url_protocol = https #配置https方式啟動
3.3 重新配置啟動Harbor
./prepare #重新配置Harbor
./install.sh #重新執行Harbor安裝,注:此處可能有更好的方式重啟


4 https訪問Harbor
4.1 編輯hosts文件
編輯本地的/etc/hosts文件,加入registry.anxminise.cc域名,如下:
vim /etc/hosts #編輯hosts文件
文件最后添加如下內容:
192.168.1.112 registry.anxminise.cc
保存並退出
4.2 添加並信任根證書
4.2.1 Mac系統
打開鑰匙串訪問應用,添加生成的根證書,如下:

並設置證書為始終信任,如下:

4.2.2 Windows系統
待補充
4.3 瀏覽器訪問
瀏覽器中輸入https://registry.anxminise.cc,如下:

