开源工具acme.sh:一款零门槛自动化SSL证书管理神器:从申请到续期一键搞定!
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
在当今HTTPS普及的时代,SSL证书已成为网站安全的基础设施。但是传统证书申请流程繁琐、续期复杂的问题始终困扰着开发者。 由纯Shell脚本编写的开源工具acme.sh,凭借其轻量化、全自动的特性,正在成为全球开发者管理SSL证书的首选方案。 acme.sh的优势acme.sh完整实现了ACME协议标准,通过与
核心功能拆解1. 灵活的运行模式通过不同参数适配各类服务器环境: Webroot模式: 在现有Web服务目录生成验证文件(推荐生产环境)
Standalone模式: 临时启动HTTP服务完成验证(适合无Web服务场景) DNS模式: 通过API自动配置TXT解析记录(支持
2. 证书生态管理跨平台部署:通过
证书监控: 一键迁移: 支持PKCS#12格式导出证书 3. 企业级特性ECC证书支持:生成更安全的椭圆曲线加密证书
多域名合并: 单证书支持100+域名 沙盒测试: 使用 生成证书acme.sh 实现了 acme 协议支持的所有验证协议。 一般有两种方式验证: HTTP 和 DNS 验证。 HTTP 验证直接签发只需要指定域名,并指定域名所在的网站根目录. acme.sh 会全自动的生成验证文件,并放到网站的根目录,验证完成后会聪明的删除验证文件,整个过程没有任何副作用。
使用 Apache 模式如果你用的 Apache 服务器,acme.sh 还可以智能的从 Apache 的配置中自动完成验证,你不需要指定网站根目录:
使用 Nginx 模式如果你用的 Nginx 服务器,或者反代,acme.sh 还可以智能的从 Nginx 的配置中自动完成验证,你不需要指定网站根目录:
注意,无论是 Apache 还是 Nginx 模式,acme.sh 在完成验证之后,会恢复到之前的状态,都不会私自更改程序本身的配置. 好处是你不用担心配置被搞坏,也有一个缺点,你需要自己配置 SSL 项,否则只能成功生成证书,你的网站还是无法正常使用 HTTPS。 使用独立服务模式如果服务器上没有运行任何 Web 服务,80 端口是空闲的,那么 acme.sh 还能假装自己是一个 WebServer,临时监听 80 端口,完成验证:
修改默认 CAacme.sh 脚本默认 CA 服务器是 只需要把 CA 服务器改成
更高级的用法请参考: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert DNS 验证如果你没有服务器,没有公网 IP,只需要 DNS 的解析记录即可完成验证。 手动验证这需要你手动在域名上添加一条 TXT 解析记录,验证域名所有权。 注意,如果使用手动验证,acme.sh 将无法自动更新证书,每次都需要手动添加解析来验证域名所有权。如果有自动更新证书的需求,请使用自动验证(DNS API)。
然后,acme.sh 会生成相应的解析记录显示出来,你只需要在你的域名管理面板中添加这条 TXT 记录即可。 等待解析完成之后,执行以下命令重新生成证书:
注意这里现在用的是 自动验证(DNS API)DNS 方式的真正强大之处在于可以使用域名解析商提供的 API 自动添加 TXT 记录,且在完成验证后删除对应的记录。 acme.sh 目前支持超过一百家的 DNS API。 以 DNSPod.cn 为例,你需要先登录到 DNSPod.cn,拿到你的 DNSPod API Key 和 ID 并设置:
现在我们可以签发通配符证书了:
总结acme.sh不仅是一个工具,更代表着自动化运维的理念革新,配合CI/CD流程,新项目上线完全不用操心证书问题。如果你也在为证书管理发愁,真心建议试试这个工具,我认为acme.sh是目前最好用的免费SSL证书管理工具! 开源地址
阅读原文:原文链接 该文章在 2025/8/15 12:35:51 编辑过 |
关键字查询
相关文章
正在查询... |