k8s

harbor启用https

步骤

参考官方文档:https://goharbor.io/docs/2.8.0/install-config/configure-https/

生成 CA 证书

生成 CA 证书私钥

openssl genrsa -out ca.key 4096

生成 CA 证书

替换域名为harbor的域名

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

生成服务器证书

生成私钥

openssl genrsa -out harbor.harbor.com.key 4096

生成证书签名请求 (CSR)

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

生成 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=harbor.harbor.com
DNS.2=harbor.harbor
DNS.3=hostname
EOF

生成证书

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

为 Harbor 和 Docker 提供证书

生成证书后,必须提供给 Harbor 和 Docker,并重新配置 Harbor 才能使用。

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

mkdir /data/cert/
cp harbor.harbor.com.crt /data/cert/
cp harbor.harbor.com.key /data/cert/

转换 harbor.harbor.com.crt 为 harbor.harbor.com.cert ,以供 Docker 使用。

openssl x509 -inform PEM -in harbor.harbor.com.crt -out harbor.harbor.com.cert

docker会把 .crt 文件当作 CA 证书,将 .cert 文件当作客户端证书。

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

mkdir /etc/docker/certs.d/harbor.harbor.com
cp harbor.harbor.com.cert /etc/docker/certs.d/harbor.harbor.com/
cp harbor.harbor.com.key /etc/docker/certs.d/harbor.harbor.com/
cp ca.crt /etc/docker/certs.d/harbor.harbor.com/

如果不用默认的443端口,需要创建/etc/docker/certs.d/harbor.harbor.com:port目录

重新配置 harbor

如果已经部署了harbor,需要从http改为https,需要重新prepare。

./prepare
docker-compose down -v
vim harbor.yml
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /data/cert/harbor.harbor.com.crt
  private_key: /data/cert/harbor.harbor.com.key

docker-compose up -d

file

验证

本地添加hosts:

harbor_ip harbor.harbor.com

打开浏览器,然后输入https://harbor.harbor.com

正常访问。

file

如果想导入证书,以chrome浏览器导入证书为例,搜索栏输入以下内容,下拉选择管理证书,选择受信任的证书颁发机构,然后导入ca.crt重启浏览器使用域名访问即可。

chrome://settings/security
分类: k8s
0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部
0
希望看到您的想法,请您发表评论x