部署harbor

1. 安装docker-compose

yum -y install docker-compose

docker-compose --version

---1.18

需要进行升级

yum -y remove docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

---1.29.2

2.下载harbor

wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz
tar -xvf harbor-offline-installer-v2.5.0.tgz
mv harbor /data/

3. openssl生成签名证书

3.1 生成证书颁发机构证书

在生产环境中,您应该从CA获得证书。在测试或开发环境中,您可以生成自己的CA。

3.1.1 生成CA证书私钥

cd /data/cert

openssl genrsa -out ca.key 4096

3.1.2 生成CA证书

使用IP地址,执行以下操作:

cd /root
openssl rand -writerand .rnd

调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机,则必须将其指定为通用名称(CN)属性

cd -
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=dev/OU=Personal/CN=117.50.177.**" \
 -key ca.key \
 -out ca.crt

3.2 生成服务器证书

证书通常包含一个.crt文件和一个.key文件

3.2.1 生成私钥

openssl genrsa -out 117.50.177.**.key 4096 【使用IP】

3.2.2 生成证书签名请求(CSR)

调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机,则必须将其指定为通用名称(CN)属性,并在密钥和CSR文件名中使用它。

openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=dev/OU=Personal/CN=117.50.177.168" \
    -key 117.50.177.**.key \
    -out 117.50.177.168.csr

3.2.3 生成一个x509 v3扩展文件

为您的Harbor主机生成符合主题备用名称(SAN)和x509 v3的证书扩展要求

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:117.50.177.**
EOF

如果使用FQDN,则如下生成v3扩展文件

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=registry.harbor.com
DNS.2=registry.harbor
DNS.3=harbor
EOF

3.2.4 使用该v3.ext文件为您的Harbor主机生成证书
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in 117.50.177.**.csr \
    -out 117.50.177.**.crt

4. 提供证书给Harbor和Docker

生成后ca.crt117.50.177.**.crt117.50.177.**.key文件,必须将它们提供给harbor和docker,和重新配置harbor使用它们

4.1 将服务器证书和密钥复制到Harbor主机上的certficates文件夹中,确保在/data/cert,如果在这个目录下生成,则忽略此步骤

4.2 转换117.50.177.**.crt117.50.177.**.cert,供Docker使用。

 openssl x509 -inform PEM -in 117.50.177.168.crt -out 117.50.177.168.cert 

4.3 将服务器证书,密钥和CA文件复制到Harbor主机上的Docker证书文件夹中

mkdir -p /etc/docker/certs.d/117.50.177.168/
cp 117.50.177.**.cert /etc/docker/certs.d/117.50.177.168/
cp 117.50.177.**.key /etc/docker/certs.d/117.50.177.168/
cp ca.crt /etc/docker/certs.d/117.50.177.168/

4.4 重新启动Docker Engine

systemctl restart docker

5.部署harbor

cd /data/harbor/
cp harbor.yml.tmpl harbor.yml
vi harbor.yml
hostname: 117.50.177.**
http: port: 18089
https:
  port: 443
  certificate: /data/cert/117.50.177.**.crt
  private_key: /data/cert/117.50.177.**.key
harbor_admin_password: *****@2022==
external_redis:
  host: 117.50.177.**:6005

./prepare
./install.sh

6.常用管理命令
停止服务: docker-compose stop
开始服务: docker-compose start
重启服务:docker-compose restart
停止服务并删除容器:docker-compose down
启动服务并运行容器:docker-compose up

7. 客户端解决https验证问题

将生成ca.crt根证书sz到本地,chrome导入证书:
设置--隐私设置和安全性--安全--管理证书--将ca.crt导入进来,存入:受信任的根证书颁发机构

猜你喜欢

转载自blog.csdn.net/victory0508/article/details/125098343
今日推荐