acme.sh 是一个纯 shell 的脚本, 实现了 acme 协议. 可以从 letsencrypt 自动生成并部署证书.
更多信息参看 项目主页: https://github.com/Neilpang/acme.sh
本次更新的 "tls-sni-01" 方式用法如下:
acme.sh --issue --tls -d mydomain.com -d www.mydomain.com
至此, acme.sh 支持了全部 letsencrypt 所支持的 验证方式.
使用 tls 方式验证, 我们使用内置的 openssl server 完成验证, 没有增加新的依赖.
同时需要临时占用本地的 443 端口, 所以请确保443 端口空闲.
另外, 如果你的服务器在 reverse proxy 或者 load balancer 后面, 使用了 非标准的 443 端口, 可以使用 --tlsport 指定端口:
acme.sh --issue --tls --tlsport 8443 -d mydomain.com -d www.mydomain.com
更多详细的用法,请参看 wiki : https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert
acme.sh 目前已经在 数十种 Linux 发行版, FreeBSD, OpenBSD, pfSense 以及 Windows Cygwin 上通过测试.
全部的测试状态,请参看我的自动测试项目:
https://github.com/Neilpang/acmetest
欢迎大家多 PR.