使用acme.sh从 letsencrypt 生成免费的SSL证书
原创文章,未经允许,请勿转载
acme.sh是一个简洁无依赖的命令行工具,可以从 letsencrypt 生成免费的证书.
安装
curl https://get.acme.sh | sh
记得安装完之后需要重新登录ssh这样命令才会生效
申请证书
#//nginx自动验证
acme.sh --issue -d www.abc.com --nginx
2018年2月份以后letsencrypt支持了泛域名证书!acme.sh也支持申请泛域名证书,申请泛域名证书必须使用dns验证,如果需要自动需求,假设我们的域名是使用的cloudflare那可以这样:
acme.sh --force --issue -d *.abc.com --dns dns_cf
上面命令可能报错,因为你还没有指定cloudflare的key,需要先指定:
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"
阿里云dns验证:
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
acme.sh --issue --dns dns_ali -d *.example.com
更多dns验证的用法看这里:https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
安装证书
mkdir -p /data/cert
acme.sh --installcert -d www.abc.com --key-file /data/cert/www.abc.com.key --fullchain-file /data/cert/www.abc.com.cer --reloadcmd "service nginx force-reload"
配置nginx
server {
listen 80;
server_name www.abc.com;
index index.html;
root /data/wwwroot;
listen 443 ssl;
ssl off;
ssl_certificate /data/cert/www.abc.com.cer;
ssl_certificate_key /data/cert/www.abc.com.key;
}
参考链接:
https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E
https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
https://community.letsencrypt.org/t/acme-sh-supports-acme-v2-wildcard-now/49685
来源:悠游悠游,2018-04-17,原文地址:https://yymmss.com/p/acme-sh.html