使用自建的 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.com
https:
port: 444
certificate: /haohao/harbor/mycert/cert.crt
private_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...
)