一.安装前提条件:
硬件
资源 | 最低 | 推荐 |
---|---|---|
cpu | 2c | 4c |
内存 | 4G | 8G |
硬盘 | 40G | 160G |
软件
软件 | 版本 | 描述 |
---|---|---|
docker | v17.0.6-ce+ | 安装参考一键安装Docker |
docker compose | v1.18.0+ | |
Openssl | latest | 用于为 Harbor 生成证书和密钥 |
需要开放端口
资源 | 最低 | 推荐 |
---|---|---|
443 | HTTPS | 网页https访问端口 |
4443 | HTTPS | 与 Harbor 的 Docker Content Trust 服务的连接。仅当启用了公证时才需要 |
80 | HTTP | 网页访问端口 |
二.安装配置
1.安装Harbor
1.下载解压
# 下载
wget https://github.com/goharbor/harbor/releases/download/v2.4.2/harbor-online-installer-v2.4.2.tgz
# 解压到指定目录
tar -zxvf harbor-online-installer-v2.4.2.tgz -C /usr/local/
2.相关文件介绍
# harbor配置文件模板
harbor.yml.tmpl
# 首次安装需要先执行,会生成docekr-compose.yml文件
# 更新harbor配置文件后也需要执行此文件
prepare
# 安装启动脚本
install.sh
# 容器启动相关配置文件目录
common
3.修改配置
cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
###==== 修改以下参数
# 访问域名
hostname : my.harbor.com
# 配置https证书路径
certificate: /data/cert/my.harbor.com.crt
private_key: /data/cert/my.harbor.com.key
# 管理员密码
harbor_admin_password: Harbor12345
database:
# 设置pgsql管理员密码
password: root123
# 存储路径
data_volume: /data
4.安装
cd /usr/local/harbor/
# 每次修改配置后都先执行此命令
./prepare
# 执行安装脚本
./install.sh
2.配置HTTPS
2.1 生成证书颁发机构证书
1、生成 CA 证书私钥
openssl genrsa -out ca.key 4096
2、生成 CA 证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=hubei/L=wuhan/O=test/OU=test/CN=my.harbor.com" \
-key ca.key \
-out ca.crt
2.2 生成服务器证书
证书通常包含一个文件和一个文件
.crt
.key
my.harbor.com.crt
my.harbor.com.key
1.生成私钥
openssl genrsa -out my.harbor.com.key 4096
2.生成证书签名请求 (CSR)
openssl req -sha512 -new \
-subj "/C=CN/ST=hubei/L=wuhan/O=test/OU=test/CN=my.harbor.com" \
-key my.harbor.com.key \
-out my.harbor.com.csr
3.生成 x509 v3扩展文件
无论您使用FQDN还是IP地址连接到Harbor主机,都必须创建此文件,以便可以为您的Harbor主机生成符合主题备用名称(SAN)和x509 v3的证书扩展要求。替换DNS
条目以反映您的域
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=my.harbor.com
DNS.2=my.harbor
DNS.3=harbor
EOF
4.使用该v3.ext文件为您的Harbor主机生成证书
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in my.harbor.com.csr \
-out my.harbor.com.crt
2.3 提供证书给Harbor和Docker
生成文件后,需要提供给 Harbor 和 Docker,并重新配置 Harbor 使用证书
1.将服务器证书和密钥复制到 Harbor主机证书文件夹中
cp my.harbor.com.crt /data/cert/
cp my.harbor.com.key /data/cert/
2.转换my.harbor.com.crt为my.harbor.com.cert,供Docker使用
Docker守护程序将.crt文件解释为CA证书,并将.cert文件解释为客户端证书
openssl x509 -inform PEM -in my.harbor.com.crt -out my.harbor.com.cert
3.将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中
cp my.harbor.com.cert /etc/docker/certs.d/my.harbor.com/
cp my.harbor.com.key /etc/docker/certs.d/my.harbor.com/
cp ca.crt /etc/docker/certs.d/my.harbor.com/
如果将默认nginx端口443映射到其他端口,请创建文件夹
/etc/docker/certs.d/my.harbor.com:port或/etc/docker/certs.d/harbor_IP:port
4.重新启动Docker Engine
systemctl restart docker
2.4 部署或重新配置Harbor
如果尚未部署 Harbor,需要配置harbor的yml文件中 hostname、https参数
如果已部署Harbor希望配置为HTTPS,执行以下步骤
1.运行 prepare 脚本以启用 HTTPS
./prepare
2.Harbor正在运行,需要先停止并删除现有实例
docker-compose down -v
3.重新启动Harbor
docker-compose up -d