harbor仓库安装和配置https证书

1 harbor安装(无https)

安装配置文件选项说明
data_volume: /soft/harbor/data/指定数据的存储目录
harbor_admin_password: wzy666harbor的admin用户密码
./install.sh --with-chartmuseumharbor-v2.7.4版本安装时用到

各个版本的项目地址为:https://github.com/goharbor/harbor/tags

v2.7.4版本下载地址为:https://github.com/goharbor/harbor/releases/download/v2.7.4/harbor-offline-installer-v2.7.4.tgz

1.设置安装目录为/soft/harbor,直接解压即可

tar xvf /tgz/harbor-offline-installer-v2.7.4.tgz -C /soft/

[root@harbor250soft]# ls /soft/harbor
common.sh  harbor.v2.7.4.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

2.修改harbor的安装配置文件。注释掉https配置,在没有证书的情况下安装会报错

cp /soft/harbor/harbor.yml.tmpl /soft/harbor/harbor.yml
vim /soft/harbor/harbor.yml
 5 hostname: 10.0.0.250         # 设置harbor的主机名为本机IP

13 #https:    !!! 注释掉,在没有证书的情况下安装会报错
14 #  # https port for harbor, default is 443
15 #  port: 443
16 #  # The path of cert and key files for nginx
17 #  certificate: /your/certificate/path
18 #  private_key: /your/private/key/path 

34 harbor_admin_password: aa         # 管理员密码

53 data_volume: /soft/harbor/data    # 指定数据存放位置

3.执行安装脚本。前提是docker服务已经正常运行。看到最后一行的输出即安装成功

/soft/harbor/install.sh --with-chartmuseum

✔ ----Harbor has been installed and started successfully.----

4.登录访问http://10.00.250

账号密码:admin aa(配置文件里指定的密码)

在这里插入图片描述

5.如何备份数据,关闭docker进程,备份/soft/harbor/data目录即可;恢复的时候替换原目录

2 harbor安装(带https)

00 准备工作

1.解压安装包到/soft/harbor

2.创建证书目录到/soft/harbor

mkdir -pv /soft/harbor/certs/{ca,harbor-server,docker-client}

02 创建CA证书和harbor证书

说明:本次所有操作都在/soft/harbor/certs/目录下进行

CA证书

1.创建CA的私钥,生成一个 4096 位的 RSA 私钥,并将其保存到 ca/ca.key 文件中

openssl genrsa -out ca/ca.key 4096

2.基于自建的CA私钥创建CA证书(注意,证书签发的域名范围)

私钥用于签名自签名证书,确保CA证书的有效性和安全性

openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=zhiyong18.com" \
 -key ca/ca.key \
 -out ca/ca.crt

配置harbor证书

1.生成harbor服务器的私钥

openssl genrsa -out harbor-server/harbor.zhiyong18.com.key 4096

2.在有了harbor私钥的基础上,进行认证请求(csr文件),让自建CA认证

openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.zhiyong18.com" \
-key harbor-server/harbor.zhiyong18.com.key \
-out harbor-server/harbor.zhiyong18.com.csr

3.生成 x509 v3 的扩展文件用于认证

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

[alt_names]
DNS.1=harbor.zhiyong18.com
EOF

authorityKeyIdentifier=keyid,issuer

  • 定义了授权密钥标识符,以便识别证书的颁发者及其密钥。

basicConstraints=CA

  • 指示该证书不能用作证书颁发机构(CA)。

keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

  • 定义证书的用途,包括数字签名、不可否认性、密钥加密和数据加密。

extendedKeyUsage = serverAuth

  • 限定证书的扩展用途为服务器身份验证。

subjectAltName = @alt_names

  • 指定证书的备用名称,将会在 [alt_names] 部分定义。

[alt_names]

  • 该部分定义了备用名称的详细信息。
  • DNS.1=harbor.zhiyong18.com
    • 指定备用 DNS 名称,证书还将支持 harbor.zhiyong18.com

总结:创建的 v3.ext 文件为生成证书时提供了扩展配置,确保证书适用于特定的用途和安全要求

4.基于 x509 v3 的扩展文件认证签发harbor server证书

openssl x509 -req -sha512 -days 3650 \
-extfile harbor-server/v3.ext \
-CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial \
-in harbor-server/harbor.zhiyong18.com.csr \
-out harbor-server/harbor.zhiyong18.com.crt

5.查看证书

[root@harbor250certs]# tree /soft/harbor/certs/
/soft/harbor/certs/
├── ca
│   ├── ca.crt
│   └── ca.key
├── docker-client
└── harbor-server
    ├── harbor.zhiyong18.com.crt
    ├── harbor.zhiyong18.com.csr
    ├── harbor.zhiyong18.com.key
    └── v3.ext

所涉及的证书总结

ca/ca.key

  • 包含生成的 RSA 私钥,用于签署证书和证书签名请求(CSR)。

ca/ca.crt

  • 包含自签名的 X.509 证书,用于作为证书颁发机构(CA)的身份验证,供其他证书的验证使用。

harbor-server/harbor.zhiyong18.com.key

  • 包含为 harbor.zhiyong18.com 生成的 RSA 私钥,用于保护与该域名相关的通信。

harbor-server/harbor.zhiyong18.com.csr

  • 证书签名请求,包含公钥和主体信息,通常用于向 CA 申请证书。

harbor-server/v3.ext

  • 扩展配置文件,为生成的证书提供附加信息,例如密钥用途和备用名称。

harbor-server/harbor.zhiyong18.com.crt

  • 由 CA 签名的 X.509 证书,适用于 harbor.zhiyong18.com,可以用于 SSL/TLS 加密,确保与该域名的安全通信。

03 安装harbor

1.修改harbor.yml,只列出有改动的部分,其余部分和无https安装harbor一样

 5 hostname: harbor.zhiyong18.com

13 https:
14   # https port for harbor, default is 443
15   port: 443
16   # The path of cert and key files for nginx
17   certificate: /soft/harbor/certs/harbor-server/harbor.zhiyong18.com.crt
18   private_key: /soft/harbor/certs/harbor-server/harbor.zhiyong18.com.key

2.访问测试

在这里插入图片描述

04 docker登录harbor

生成docker客户端使用的证书

1.先进入目录/soft/harbor/certs

openssl x509 -inform PEM -in harbor-server/harbor.zhiyong18.com.crt \
-out docker-client/harbor.zhiyong18.com.cert
cp harbor-server/harbor.zhiyong18.com.key docker-client/
cp ca/ca.crt docker-client/

3.查看3个客户端相关证书

[root@harbor250certs]# ls docker-client/
ca.crt  harbor.zhiyong18.com.cert  harbor.zhiyong18.com.key

配置docker使用证书

mkdir -pv /etc/docker/certs.d/harbor.zhiyong18.com/
cp docker-client/* /etc/docker/certs.d/harbor.zhiyong18.com/

2.先添加hosts解析,再登录测试

[root@harbor250certs]# docker login -u admin -p aa harbor.zhiyong18.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@harbor250certs]# echo aa | docker login -u admin --password-stdin harbor.zhiyong18.com
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
 -u admin --password-stdin harbor.zhiyong18.com
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
### Harbor 安装配置 HTTPS 指南 #### 准备工作 为了确保 Harbor 能够安全运行,在安装前需准备必要的环境工具。Harbor 支持多种操作系统,但在生产环境中推荐使用 Linux 发行版。 #### 下载并解压 Harbor 从官方 GitHub 或者 VMware 的官方网站下载最新版本的 Harbor 安装包,并将其放置于目标机器上适当位置后进行解压缩处理[^1]。 ```bash wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz tar -zxvf harbor-offline-installer-v2.7.0.tgz cd harbor ``` #### 创建自签名 SSL 证书 由于 Docker 默认会尝试通过 HTTPS 进行通信,因此即使是在测试环境下也建议创建自签名SSL证书用于验证目的。可以利用 OpenSSL 工具生成适用于特定主机名或 IP 地址的 X.509 数字证书文件[^2]: ```bash openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout ca.key \ -x509 -days 365 -out ca.crt ``` 接着为实际使用的域名或IP地址制作对应的服务器端证书请求以及最终签署得到 .crt 文件: ```bash openssl req -new -sha256 \ -key server.key -subj "/CN=your.domain.name" | \ openssl x509 -req -CA ca.crt -CAkey ca.key \ -CAcreateserial -out server.crt -extfile v3.ext -days 365 ``` 注意替换 `your.domain.name` 为你自己的域名或者 IP 地址。 #### 修改 Configuration File (harbor.yml) 编辑位于当前目录下的 `harbor.yml` 文件,按照如下方式调整参数设置以启用 HTTPS 功能: - 将 hostname 设置为目标访问地址; - 开启 ssl 并指明之前生成好的 CA 及 Server Certificates 所处路径; ```yaml hostname: your.domain.name http: port: 80 https: port: 443 certificate: /path/to/server.crt private_key: /path/to/server.key ``` 完成上述更改之后保存退出即可继续下一步骤。 #### 启动 Harbor 执行以下命令启动 Harbor 实例,此时应该可以看到控制台输出的日志信息表明服务正在正常运作当中: ```bash ./install.sh --with-trivy ``` #### 测试连接 最后一步就是确认一切是否就绪了——可以通过浏览器直接打开设定好的 URL 来查看 Web UI 是否能够顺利加载出来;也可以借助命令行工具如 curl 或 docker client 对仓库发起 pull/push 请求来进行功能性的检验. ```bash curl -k https://your.domain.name docker login your.domain.name ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值