Fork me on GitHub

使用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