[Certimate] 开源的 SSL 证书管理工具,可以帮助你自动申请、部署、续期 SSL 证书

10 天前
 usual2970

🔒Certimate

做个人产品或者在小企业里负责运维的同学,会遇到要管理多个域名的情况,需要给域名申请证书。但是手动申请证书有以下缺点:

  1. 😱麻烦:申请证书并部署到服务的流程虽不复杂,但也挺麻烦的,犹其是你有多个域名需要维护的时候。
  2. 😭易忘:另外当前免费证书的有效期只有 90 天,这就要求你定期的操作,增加了工作量的同时,你也很容易忘掉续期,从而导致网站访问不了。

Certimate 就是为了解决上述问题而产生的,它具有以下特点:

  1. 操作简单:自动申请、部署 SSL 证书,并且在证书即将过期时自动续期,无需人工干预。
  2. 支持私有部署:部署方法简单,只需下载二进制文件并执行即可完成安装。二进制文件、docker 镜像全部用 github actions 生成,过程透明,可自行审计。
  3. 数据安全:由于是私有部署,所有数据均存储在本地,不会保存在服务商的服务器上,确保数据的安全性。

Certimate 旨在为用户提供一个安全、简便的 SSL 证书管理解决方案。

源码地址:

https://github.com/usual2970/certimate

一、安装

安装 Certimate 非常简单,你可以选择以下方式之一进行安装:

1. 二进制文件

你可以直接从Releases 页下载预先编译好的二进制文件,解压后执行:

./certimate serve

[!NOTE] MacOS 在执行二进制文件时会提示:无法打开“certimate”,因为 Apple 无法检查其是否包含恶意软件。可在系统设置> 隐私与安全性> 安全性 中点击 "仍然允许",然后再次尝试执行二进制文件。

2. Docker 安装


git clone git@github.com:usual2970/certimate.git && cd certimate/docker && docker compose up -d

3. 源代码安装

git clone EMAIL:usual2970/certimate.git
cd certimate
go run main.go serve

二、使用

执行完上述安装操作后,在浏览器中访问 http://127.0.0.1:8090 即可访问 Certimate 管理页面。

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

三、支持的服务商列表

服务商 是否域名服务商 是否部署服务 备注
阿里云 支持阿里云注册的域名,支持部署到阿里云 CDN,OSS
腾讯云 支持腾讯云注册的域名,支持部署到腾讯云 CDN
七牛云 七牛云没有注册域名服务,支持部署到七牛云 CDN
CloudFlare 支持 CloudFlare 注册的域名,CloudFlare 服务自带 SSL 证书
SSH 支持部署到 SSH 服务器
WEBHOOK 支持回调到 WEBHOOK

四、系统截图

五、概念

Certimate 的工作流程如下:

这就涉及域名、dns 服务商的授权信息、部署服务商的授权信息等。

1. 域名

就是要申请证书的域名。

2. dns 服务商授权信息

给域名申请证书需要证明域名是你的,所以我们手动申请证书的时候一般需要在域名服务商的控制台解析记录中添加一个 TXT 记录。

Certimate 会自动添加一个 TXT 记录,你只需要在 Certimate 后台中填写你的域名服务商的授权信息即可。

比如你在阿里云购买的域名,授权信息如下:

accessKeyId: xxx
accessKeySecret: TOKEN

在腾讯云购买的域名,授权信息如下:

secretId: xxx
secretKey: TOKEN

3. 部署服务商授权信息

Certimate 申请证书后,会自动将证书部署到你指定的目标上,比如阿里云 CDN 这时你需要填写阿里云的授权信息。Certimate 会根据你填写的授权信息及域名找到对应的 CDN 服务,并将证书部署到对应的 CDN 服务上。

部署服务商授权信息和 dns 服务商授权信息一致,区别在于 dns 服务商授权信息用于证明域名是你的,部署服务商授权信息用于提供证书部署的授权信息。

六、常见问题

Q: 提供 saas 服务吗?

A: 不提供,目前仅支持 self-hosted (私有部署)。

Q: 数据安全?

A: 由于仅支持私有部署,各种数据都保存在用户的服务器上。另外 Certimate 源码也开源,二进制包及 Docker 镜像打包过程全部使用 Github actions 进行,过程透明可见,可自行审计。

Q: 自动续期证书?

A: 已经申请的证书会在过期前 10 天自动续期。每天会检查一次证书是否快要过期,快要过期时会自动重新申请证书并部署到目标服务上。

七、许可证

Certimate 采用 MIT 许可证,详情请查看 LICENSE 文件。

1594 次点击
所在节点    分享创造
9 条回复
Moyyyyyyyyyyye
10 天前
赞,试试
xycost233
10 天前
支持加密的证书下载或者支持自定义的证书推送么,部署的服务不提供 API 部署证书
vopsoft
10 天前
我有个问题,当我选 ssh 部署时 ,正式名称不能用变量,这样不适用于 ssh 服务器有多个域名的情况。
usual2970
10 天前
@xycost233 支持下载,也支持使用 webhook 的形式进行推送😄
usual2970
10 天前
@vopsoft 后续可以考虑添加变量,目前可以通过创建同一个服务器的多个 ssh 部署来解决,有问题欢迎提 Issue ~
mosliu
9 天前
试了下。

不太方便,不如 certbot

多个域名需要创建 n 个部署,这个工具并不能减少太多的工作量。
usual2970
9 天前
@mosliu 感谢反馈~

Certimate 除了支持 ssh 部署还支持各种 cdn 部署,这些都是 certbot 不具备的。

而且 Certimate 全部图形界面操作,小白用户也更容易上手。

两个产品不太具有可比性。另外 Certimate 还在初期阶段,后续会加入更多的能力。
Moyyyyyyyyyyye
9 天前
@usual2970 #7 看好你
usual2970
9 天前
@Moyyyyyyyyyyye 😄谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1071515

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX