摘要:默认请求注册服务器,并不分发任何证书。使得其配置相对简单。然而,强烈建议在生产环境中增强安全性。获取证书假定你的仓库的是,并且其记录指向主机正在运行的。你的镜像数据将保留在文件系统中。应该会显示的界面。然后,运行如下命令验证是否安装成功。
Harbor 默认 HTTP 请求注册服务器,并不分发任何证书。使得其配置相对简单。然而,强烈建议在生产环境中增强安全性。Harbor 有一个 Nginx 实例为所有服务提供反向代理,你可以在 Nginx 配置中启用 HTTPS 。
获取证书假定你的仓库的 hostname 是 reg.yourdomain.com,并且其 DNS 记录指向主机正在运行的 Harbor。首先,你需要获取一个 CA 证书。证书通常包含一个 .crt 文件和 .key 文件,例如, yourdomain.com.crt 和 yourdomain.com.key。
在测试或开发环境中,你可能会选择使用自签名证书,而不是购买 CA 证书。下面的命令会生成自签名证书:
1) 生成自签名 CA 证书:
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
2) 生成证书签名请求:
如果使用 FQDN (完全限定域名) 如 reg.yourdomain.com 作为你的注册服务器连接,那你必须使用 reg.yourdomain.com 作为 CN (Common Name)。另外,如果使用 IP 地址作为你的注册服务器连接,CN 可以是你的名字等等:
openssl req -newkey rsa:4096 -nodes -sha256 -keyout yourdomain.com.key -out yourdomain.com.csr
3) 生成注册服务器证书:
假定你使用类似 reg.yourdomain.com 这样的 FQND 作为注册服务器连接,运行下面的命令为你的注册服务器生成证书:
openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out yourdomain.com.crt
假定你使用 IP , 如 192.168.1.101 作为注册服务器连接,你可以运行以下命令:
echo subjectAltName = IP:192.168.1.101 > extfile.cnf openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out yourdomain.com .crt配置和安装
在取得 yourdomain.com.crt 和 yourdomain.com.key 文件后,你可以将它们放置在如 /root/cert/ 目录下:
cp yourdomain.com.crt /root/cert/ cp yourdomain.com.key /root/cert/
接下来,编辑 harbor/make/harbor.cfg, 更新 hostname , protocol, ssl_cert 和 ssl_cert_key 属性:
#set hostname hostname = reg.yourdomain.com #set ui_url_protocol ui_url_protocol = https ...... #The path of cert and key files for nginx, they are applied only the protocol is set to https ssl_cert = /root/cert/yourdomain.com.crt ssl_cert_key = /root/cert/yourdomain.com.key
为 Harbor 生成配置文件:
# 工作目录 harbor/make ./prepare
如果 Harbor 已经在运行,则停止并删除实例。你的镜像数据将保留在文件系统中。
# 工作目录 harbor/make # 在运行 compose 前, 需将 docker-compose.tpl 文件重命名为 docker-compose.yaml mv docker-compose.tpl docker-compose.yaml docker-compose down
最后,重启 Harbor:
docker-compose up -d
在为 Harbor 配置 HTTPS 完成后,你可以通过以下步骤对它进行验证:
打开浏览器,并输入地址:https://reg.yourdomain.com。应该会显示 Harbor 的界面。
在装有 Docker daemon 的机器上,确保 Docker engine 配置文件中没有配置 "-insecure-registry",并且,你必须将已生成的 ca.crt 文件放入 /etc/docker/certs.d/yourdomain.com(或 / etc/docker/certs.d/your registry host IP) 目录下,如果这个目录不存在,则创建它。
如果你将 nginx 的 443 端口映射到其他端口上了,你需要创建目录的为 /etc/docker/certs.d/yourdomain.com:port(/etc/docker/certs.d/your registry host IP:port)。然后,运行如下命令验证是否安装成功。
docker login reg.yourdomain.com
如果你将 nginx 443 端口映射到其他端口上,则需要在登录时添加端口号,如:
docker login reg.yourdomain.com:port疑难解答
1. 你可能是通过证书发行商获取中间证书。在这种情况下,你应该合并中间证书与自签证书,通过如下命令即可实现:
cat intermediate-certificate.pem >> yourdomain.com.crt
2. 在一些运行着 docker daemon 的系统中,你可能需要操作系统级别的信任证书。
在 Ubuntu 上, 可以通过以下命令来完成:
cp youdomain.com.crt /usr/local/share/ca-certificates/reg.yourdomain.com.crt update-ca-certificates
在 Red Hat (CentOS etc) 上, 命令如下:
cp yourdomain.com.crt /etc/pki/ca-trust/source/anchors/reg.yourdomain.com.crt update-ca-trust
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26818.html
摘要:实现基础项目的部分代码如下依赖常用库依赖驱动及插件依赖阿里依赖阿里依赖具体的配置如下配置通用,详情请查阅官方文档是否判断字符串类型即表达式内是 实现 基础项目的pom.xml部分代码如下 1.8 org.springframework.boot spring-boot-starter-parent ...
摘要:有的网站认为只有那些像金融网站支付平台企业网站银行等等才需要部署证书,别的网站似乎并不重要。网络环境复杂,信息交错,部署证书,可以提高读者隐私的安全性。登录页部署证书其他页面需要不大。众多网站安全问题也不可能仅靠一张证书就全部解决。HTTPS会使网站访问速度变慢?部署证书https之后网站速度变慢的问题,一般情况下我们浏览的网站部署了证书以后发现加载速度变慢了,是因为在HTTP上多了一个SS...
摘要:当时结合本站的部署经验,给大家详细介绍了部署免费。截止年月日,由实时统计报告显示,在统计的多万活跃网站中,已经有万约的站点部署了证书服务。 随着互联网快速发展,互联网信息安全越来越受到大家重视,HTTPS 应该是近两年各大厂商都在尽力普及的技术之一。国内大厂基本上已经全面普及了 HTTPS。 本文首发于我的个人网站:听说 - https://tasaid.com/,建议在我的个人网站阅...
摘要:服务器部署最后一篇文章,部署证书,升级为,其实网上相关教程有很多,但是略麻烦,本教程让你一切从简,分钟搞定,免费一年哦申请证书免费申请的机构有很多,我用的是腾讯云的,进入腾讯云官网,云产品的证书管理,可免费申请。 nodejs服务器部署最后一篇文章,部署ssl证书,升级http为https,其实网上相关教程有很多,但是略麻烦,本教程让你一切从简,5分钟搞定https,免费一年哦 申请s...
阅读 2202·2023-04-26 01:57
阅读 3159·2023-04-25 16:30
阅读 2269·2021-11-17 09:38
阅读 1021·2021-10-08 10:14
阅读 1332·2021-09-23 11:21
阅读 3614·2019-08-29 17:28
阅读 3394·2019-08-29 15:27
阅读 901·2019-08-29 13:04