申请SSL证书
Let’s Encrypt记录了很多的ACME客户端实现,网上搜到的很多帖子都是用的官方推荐的
Certbot,我在这里使用的acme.sh
基本的安装和申请查看官方文档就可以。
地址:🔗安装&申请证书🔗
因为我是在阿里云买的域名,所以直接使用DNS模式,申请一个泛域名证书,可以看这个 -> 🔗阿里云DNS自动申请🔗
原文给出的获取access key链接失效,会跳转到RAM(权限控制)页面,也推荐使用子账户的access key去做这个操作。
登录RAM:地址
创建一个新的用户,获取Access Key
新建用户 -> 填入相关信息,勾选编程访问 -> 保存Access Key(CSV or 复制)


配置新用户的权限
给当前用户添加
管理云解析(DNS)的权限即可,因为需要做DNS验证。
配置Access Key
1 | export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" |
申请证书
1 | acme.sh --issue --dns dns_ali -d gsealy.net -d *.gsealy.net |
申请成功后,CA证书、csr、key、证书和证书链都会在指定目录下。比如我的就在/root/.acme.sh/gsealy.net,申请的同时会自动配置定时任务,到既定时间会更新证书。
复制证书
我的机子不支持验证Let’s Encrypt的证书,所以需要导入CA证书到Docker目录。先通过install-cert复制证书到一个常用目录
注:-d 就是申请的域名
1 | acme.sh --install-cert -d gsealy.net --install-cert --cert-file /opt/ssl/gsealy.net/gsealy.net.cer --ca-file /opt/ssl/gsealy.net/ca.cer --key-file /opt/ssl/gsealy.net/gsealy.net.key --fullchain-file /opt/ssl/gsealy.net/fullchain.cer |
这样就把所有的证书都安装在指定目录了
部署Harbor
需要先安装Docker
首次安装
直接在Github下载最新的离线安装包,地址
修改harbor.yml
主要是修改hostname和https
1 | # 二级域名,DNS配置A类型解析为内网IP |
执行./prepare,然后执行install.sh即可
浏览器访问harbor.gsealy.net,可以看到已经启用https,查看证书也是有效的,证书链也可以显示。
***** 但是在Docker中,需要配置CA证书,否则验证不通过
1 | [root@localhost /]# docker login harbor.gsealy.net |
此时需要复制CA证书到Docker目录,此种方法不需要重启Docker daemon
1 | [root@localhost /]# cp /opt/ssl/gsealy.net/ca.cer /etc/docker/certs.d/harbor.gsealy.net |
HTTP升级
关闭所有运行harbor镜像
ps. 不会删除数据,只是清理镜像
进入到harbor的工作目录(包含docker-compose.yml文件的目录),停止所有harbor运行镜像
1 | docker-compose down -v |
可选:修改daemon.json
若前期使用HTTP,在json中添加了insecure-registries配置,需要删除并重启docker服务
1 | 例: |
按照首次安装进行部署
结束!🔚
