官方的安裝說(shuō)明:[https://goharbor.io/docs/1.10/install-config/]
現(xiàn)在Harbor的安裝已經(jīng)很簡(jiǎn)單扛拨,在docker環(huán)境下的安裝,基本上已經(jīng)全部自動(dòng)化举塔,只要運(yùn)行腳本就行绑警,這里面對(duì)很多人來(lái)說(shuō)比較難的可能就是https的數(shù)字證書(shū)問(wèn)題。關(guān)于https的原理以及用途我就不多說(shuō)了央渣,可以自已查度娘计盒。
什么是數(shù)字證書(shū)?
在HTTPS的傳輸過(guò)程中芽丹,有一個(gè)非常關(guān)鍵的角色——數(shù)字證書(shū)北启,那什么是數(shù)字證書(shū)?又有什么作用呢拔第?
所謂數(shù)字證書(shū)咕村,是一種用于電腦的身份識(shí)別機(jī)制。由數(shù)字證書(shū)頒發(fā)機(jī)構(gòu)(CA)對(duì)使用私鑰創(chuàng)建的簽名請(qǐng)求文件做的簽名(蓋章)蚊俺,表示CA結(jié)構(gòu)對(duì)證書(shū)持有者的認(rèn)可懈涛。數(shù)字證書(shū)擁有以下幾個(gè)優(yōu)點(diǎn):
使用數(shù)字證書(shū)能夠提高用戶的可信度
數(shù)字證書(shū)中的公鑰,能夠與服務(wù)端的私鑰配對(duì)使用泳猬,實(shí)現(xiàn)數(shù)據(jù)傳輸過(guò)程中的加密和解密
在證認(rèn)使用者身份期間批钠,使用者的敏感個(gè)人數(shù)據(jù)并不會(huì)被傳輸至證書(shū)持有者的網(wǎng)絡(luò)系統(tǒng)上
X.509證書(shū)包含三個(gè)文件:key宇植,csr,crt价匠。
key是服務(wù)器上的私鑰文件当纱,用于對(duì)發(fā)送給客戶端數(shù)據(jù)的加密,以及對(duì)從客戶端接收到數(shù)據(jù)的解密
csr是證書(shū)簽名請(qǐng)求文件踩窖,用于提交給證書(shū)頒發(fā)機(jī)構(gòu)(CA)對(duì)證書(shū)簽名
crt是由證書(shū)頒發(fā)機(jī)構(gòu)(CA)簽名后的證書(shū)坡氯,或者是開(kāi)發(fā)者自簽名的證書(shū),包含證書(shū)持有人的信息洋腮,持有人的公鑰箫柳,以及簽署者的簽名等信息
備注:在密碼學(xué)中,X.509是一個(gè)標(biāo)準(zhǔn)啥供,規(guī)范了公開(kāi)秘鑰認(rèn)證悯恍、證書(shū)吊銷列表、授權(quán)憑證伙狐、憑證路徑驗(yàn)證算法等
一涮毫、有商業(yè)付費(fèi)域名數(shù)字證書(shū)
很多企業(yè)用戶有自已的域名和dns,并且已經(jīng)購(gòu)買(mǎi)了商業(yè)的https證書(shū)贷屎,那就比較簡(jiǎn)單了罢防,就不需要自已做簽名證書(shū),直接把證書(shū)下載下來(lái)唉侄,就可以用了咒吐。但是這里有一個(gè)重要的問(wèn)題,購(gòu)買(mǎi)的域名證書(shū)要了解清楚是單域名證書(shū)還是泛域名證書(shū)
1)單域名證書(shū):證書(shū)僅僅包含一個(gè)主機(jī)属划。
2)SAN 證書(shū):域名通配符證書(shū)類似 DNS 解析的泛域名概念恬叹,通配符證書(shū)就是證書(shū)中可以包含一個(gè)通配符(*.example.com)。主域名簽發(fā)的通配符證書(shū)可以在所有子域名中使用同眯,這樣你的harbor倉(cāng)庫(kù)可以取個(gè):
harbor.example.com
二绽昼、需要自已制作簽名數(shù)字證書(shū)
很多時(shí)候我們安裝harbor都是用來(lái)做一下測(cè)試或者企業(yè)內(nèi)部自已用,就不想去購(gòu)買(mǎi)商業(yè)的https證書(shū)须蜗,這時(shí)候我們就需要自已用openssl工具制作簽名證書(shū)
1)首先創(chuàng)建存放數(shù)字證書(shū)的目錄
mkdir -p /data/cert && cd /data/cert
這個(gè)目錄到時(shí)候harbor.yml配置文件里的配置需要要從這個(gè)目錄讀取生成的證書(shū)文件
2)創(chuàng)建CA根證書(shū)
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt -subj "/C=CN/L=BeiJing/O=example/CN=harbor-registry"
3)生成一個(gè)證書(shū)簽名, 設(shè)置訪問(wèn)域名為example.com
openssl req -newkey rsa:4096 -nodes -sha256 -keyout example.com.key -out server.csr -subj "/C=CN/L=BeiJing/O=example/CN=example.com"
4)生成主機(jī)的證書(shū)
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out example.com.crt
這時(shí)證書(shū)文件都生成好了
ca.crt ca.key ca.srl example.com.crt example.com.key server.csr
不過(guò)自簽名的證書(shū)绪励,在用瀏覽器打開(kāi)時(shí)會(huì)提示不安全,點(diǎn)繼續(xù)使用就行唠粥,不影響使用疏魏。
三、修改配置文件
到Harbor官方上下載一個(gè)離線的版本晤愧,下完后解壓
harbor-offline-installer-v2.0.0-rc1.tgz(https://github.com/goharbor/harbor/tree/v2.0.0-rc1
)
1)解壓后需要修改harbor.yml配置文件
hostname: harbor.example.com //這個(gè)一定要跟你dns解析的一致
certificate: /data/cert/example.com.crt
private_key: /data/cert/example.com.key
- 別的像數(shù)據(jù)庫(kù)密碼大莫、Harbor倉(cāng)庫(kù)的默認(rèn)密碼等信息自已看著改。
四官份、運(yùn)行install.sh直接安裝就可以
安裝好后只厘,就用瀏覽器打開(kāi)(https://harbor.example.com),可以打開(kāi)就正常了
還有在命令行下測(cè)試一下登錄是否成功
docker login harbor.example.com
提示輸入用戶名和密碼烙丛,輸入后提示Login Succeeded,就ok了