ACME|使用acme.sh签发证书

发布于 14 天前  31 次阅读


前言:acme.sh官方文档已经有很详细的说明,这里只当作一个简单的自用备忘录。


安装acme.sh

  • 首先是安装acme.sh
curl https://get.acme.sh | sh
  • 新版acme.sh默认使用ZeroSSL,建议切换到Let’s Encrypt
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
  • 开启acme.sh自动更新
~/.acme.sh/acme.sh  --upgrade  --auto-upgrade

使用acme.sh签发证书

acme.sh已经支持签发ECC证书

  • 如果网站已经运行Nginx/Apache,指定对应插件即可:
~/.acme.sh/acme.sh --issue  -d example.com --keylength ec-256   --nginx

如果是apache,换成 --apache

  • 如果你的服务器上已经运行了web软件,指定webroot即可:
~/.acme.sh/acme.sh --issue -d example.com --keylength ec-256 --webroot  /home/wwwroot/mydomain.com/
  • 如果没有运行web软件并且80端口空闲,可以使用acme.sh自己监听80端口进行验证:
~/.acme.sh/acme.sh --issue -d example.com --keylength ec-256 --standalone

安装证书

  • 签发的证书位于~/.acme.sh目录内,不建议直接使用,而是将其安装到指定目录:
~/.acme.sh/acme.sh --install-cert -d example.com --ecc \
--key-file       /path/to/keyfile/in/nginx/key.pem  \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd     "service nginx force-reload"

其中--reloadcmd是可选的。


更新证书

上面提到的申请和安装命令,执行过一次后,acme.sh便会记下你的操作,在证书即将到期前自动帮你执行一遍,非常的好用和贴心,当然也可以手动更新:

~/.acme.sh/acme.sh --renew -d example.com

Abandon all hope, ye who enter here.