certimate:从本地获取证书,完成自动续期、并部署到远程服务器。

前言

当我们入坑开始部署自己的站点后,根据使用用途的不同,可能会有多个web服务需要管理,而SSL时绝大多数web服务都需要使用的,那么如何管理SSL证书呢?
有很多办法可以申请证书,单台服务器,当然很简单,在服务区上使用certbot或acme等申请证书,设置cron任务。
到那时有多台服务器时,应该如何快捷地部署和管理证书呢?
之前有用过一段时间的httpsok,但httpsok是SaaS服务,所有的证书都会自动共享给httpsok,先不说安全问题,作为有强大控制欲的我们,当然会希望这样的统一证书管理服务,可以直接由自己完全掌控。所以,直接在本机上运行certimate的docker容器,完成对自己所有的域名的证书申请,并自动部署到远程服务器上。

使用docker部署certimate

我们使用docker compose来部署certimate,docker-compose.yml文件代码如下:

1
2
3
4
5
6
7
8
9
services:
certimate:
image: registry.cn-shanghai.aliyuncs.com/usual2970/certimate:latest ##使用国内镜像
container_name: certimate_server
ports:
- 8090:8090
volumes:
- ./data:/app/pb_data #同步证书目录,保证容器的持久存储
restart: unless-stopped

在当前的目录下,执行docker compose up -d

访问certimate页面

在当前电脑浏览器输入:http://127.0.0.1:8090,访问。
在相同局域网内输入:http://<局域网IP>:8090,访问。

默认用户名密码

1
2
用户名:admin@certimate.fun
密码:1234567890

修改密码

虽然是安装在本地,但是还是建议养成修改密码的习惯。

新增域名

点击域名列表,将自己的域名添加进去:

我们将使用DNS方式申请证书,所以除来需要填写邮箱外,最好还是填写相关DNS解析商的信息。

添加完,点击 下一步 。

部署配置

一般我们只需要使用SSH部署即可,推荐使用私钥登陆部署。(当然,还在使用密码登陆远程服务器的小伙伴,也建议开始尝试使用私钥管理服务器。详细请参考:SSH密钥管理

填写完所有配置信息后,点击部署完成即可。

点击开始部署,如果一切正常,会在页面上显示部署信息,稍等片刻,我们就能在控制台看到我们的部署信息了。

注意事项

对于使用aapanel或者1panel管理站点的小伙伴,你可以直接修改站点的config文件,相比于panel内部申请的模式。你需要为panel配置定期重启nginx的cron任务,否则nginx不会自动重启,导致证书过期。