wangbin
  • wangbin
  • 2018-03-18
  • IT

acme.sh获取Let's Encrypt通配符证书

一. 简介

Let's Encrypt跳票1个月零2周后,终于发布通配符证书啦。

不过试着用certbot获取证书,怎么也不行,看了文档好像目前还不支持的感觉。

论坛里有人推荐使用acme.sh,看了它github上的简介,纯shell脚本,三分钟就可以上手。用了下发现真的很简单,以后就用它了。

二. 安装

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

这样就安装成功了,安装的目录是/root/.acme.sh。

三. 申请证书

acme提供了DNS API来申请通配符证书,介绍页面如下

https://github.com/Neilpang/acme.sh/tree/master/dnsapi

我用的是cloudflare,所以执行的命令是

export CF_Email="xxx@qq.com"
export CF_Key="xxx"
acme.sh --issue --dns dns_cf -d *.wangbin.io -d wangbin.io

上面xxx是cloudflare的账号和api key,到cloudflare管理页面找找就可以找到。

这个命令会保存cloudflare的信息,而且会将renew命令添加到crond中,每天执行,也就可以自动renew啦。

DNS API现在基本上支持所有主流的DNS服务商,包括阿里、CloudFlare、DNSPod、CloudXNS、GoDaddy、Namesilo...

四. ecc证书

acme支持申请更安全的ecc证书,只需要在上面的命令后面加上"--ecc",具体命令如下

export CF_Email="xxx@qq.com"
export CF_Key="xxx"
acme.sh --issue --dns dns_cf -d *.wangbin.io -d wangbin.io --ecc

五. nginx配置

server {

    listen       80;
    listen       [::]:80;
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;

    server_name  wangbin.io;
    server_name  www.wangbin.io;

    # ssl
    ssl_certificate      /root/.acme.sh/*.wangbin.io/fullchain.cer;
    ssl_certificate_key  /root/.acme.sh/*.wangbin.io/*.wangbin.io.key;

    # ecc
    ssl_certificate      /root/.acme.sh/*.wangbin.io_ecc/fullchain.cer;
    ssl_certificate_key  /root/.acme.sh/*.wangbin.io_ecc/*.wangbin.io.key;

    ssl_session_cache    shared:SSL:10m;
    ssl_session_timeout  10m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {

    }

}

六. 其他命令

renew证书

/root/.acme.sh/acme.sh  --renew -d *.wangbin.io
/root/.acme.sh/acme.sh  --renew -d *.wangbin.io --ecc

移除crontab定时renew任务

/root/.acme.sh/acme.sh --uninstall-cronjob

升级acme

/root/.acme.sh/acme.sh --upgrade

如果不需要证书了,想要删除的话,执行

/root/.acme.sh/acme.sh --remove -d *.wangbin.io
/root/.acme.sh/acme.sh --remove -d *.wangbin.io --ecc

然后手动删除之前申请的证书目录就可以啦

rm -rf /root/.acme.sh/*.wangbin.io
rm -rf /root/.acme.sh/*.wangbin.io_ecc

七. 总结

https://wangbin.io/

参考:

  1. acme.sh

  2. https://my.oschina.net/kimver/blog/1634575