harbor仓库安装和配置https证书
1 harbor安装(无https)
安装配置文件选项 | 说明 |
---|---|
data_volume: /soft/harbor/data/ | 指定数据的存储目录 |
harbor_admin_password: wzy666 | harbor的admin用户密码 |
./install.sh --with-chartmuseum | harbor-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
原文地址:https://blog.csdn.net/qq_73797346/article/details/144335008
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!