Dontalk.org:利用acme.sh脚本一键签发证书

運維技術 · 01-04 · 168 人浏览
Dontalk.org:利用acme.sh脚本一键签发证书

下载acme.sh脚本

acme.sh 官网是 https://github.com/acmesh-official/acme.sh,官方有详细的简中使用说明。
我们使用下面的命令来拉取acme.sh

curl https://get.acme.sh | sh

acme.sh 等这一类的脚本工具都会依赖cron执行定时任务,安装完成后,我们可以输入 crontab -l 命令来查看输出:

41 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

定时任务确保证书在到期前能自动续签。由于ACME协议和Let’s Encrypt CA会频繁更新,所以建议开启acme.sh的自动升级:

~/.acme.sh/acme.sh  --upgrade  --auto-upgrade

使用acme.sh签发证书

  1. 如果你的服务器已经在运行Web服务器,我们只需要指定webroot即可签发证书:

    ~/.acme.sh/acme.sh --issue -d 域名 --webroot 网站目录

    如果要为多个域名签发,直接加 -d 域名 就可以。

  2. 如果服务器在运行Nginx/Apache,指定对应插件就可以一键申请了:

    ~/.acme.sh/acme.sh --issue -d 域名 --nginx # 如果是apache,换成 --apache
  3. 如果没有运行Web服务器并且80端口未被占用,可以使用acme.sh监听80端口进行验证:

    ~/.acme.sh/acme.sh --issue -d 域名 --standalone
  4. DNS验证:

    ~/.acme.sh/acme.sh --issue --dns -d 域名
    # acme.sh会显示解析记录,需要自己设置DNS解析,解析生效后,将生成证书
    ~/.acme.sh/acme.sh --renew -d 域名

    acme.sh事实上提供了许多DNS服务商的验证插件:https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md

申请好证书的证书位于~/.acme.sh目录内
如果你想要将其安装到指定目录下的话:

~/.acme.sh/acme.sh --install-cert -d 域名 \
--key-file       密钥存放目录  \
--fullchain-file 证书存放路径 \
--reloadcmd     "service nginx force-reload"

--reloadcmd参数是可选的,用来安装好证书后重启Web服务器。

運維技術
Theme Jasmine by Kent Liao