使用Let’s Encrypt的acme.sh申请泛域名证书

Let’s Encrypt是一个非常不错的域名证书机构,致力于普及https,现在早已能够签发泛域名证书(俗称“野卡”),而且还是免费的,要知道其它机构的泛域名证书可贵的很。
下面就简单介绍一下如何申请Let’s Encrypt证书。

安装acme.sh:

在Linux下在线安装脚本,使用以下命令

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

wget -O - https://get.acme.sh | sh

更改默认证书

# zerossl default (需要输入邮箱)
acme.sh --register-account -m xxxxxxxx@gmail.com

# letsencrypt (不要邮箱)
# acme.sh --set-default-ca  --server  letsencrypt

生成证书

域名提供商api自动解析

阿里

export Ali_Key="111111111111"  
export Ali_Secret="XXXXXXXXXXXXXXXXXXXX"

生成证书

acme.sh --issue --dns dns_ali  -d {你的域名} -d *.{你的域名}

安装证书

主域名

acme.sh --install-cert -d {你的域名} \
--key-file /etc/nginx/cert/{你的域名}.key.pem \
--fullchain-file /etc/nginx/cert/{你的域名}.fullchain.pem \
--reloadcmd "service nginx reload"

nginx配置

主域名配置
vim /etc/nginx/conf.d/{你的域名}

server {
    listen      80;
    server_name {你的域名};

    return      301 https://www.$host$request_uri;
}
server {
    listen      443 ssl http2;
    server_name {你的域名};
    
    ssl_certificate /etc/nginx/cert/{你的域名}.fullchain.pem;
    ssl_certificate_key /etc/nginx/cert/{你的域名}.key.pem;

    return      301 https://www.$host$request_uri;
}


server {
    listen      80;
    server_name www.{你的域名};

    return      301 https://$host$request_uri;
}

server {
    listen       443 ssl http2;
    server_name  www.{你的域名};
    
    ssl_certificate /etc/nginx/cert/{你的域名}.fullchain.pem;
    ssl_certificate_key /etc/nginx/cert/{你的域名}.key.pem;

    location /baidu_verify_codeva-mV5uB4pImc.html {
        alias /home/www/check/baidu_verify_codeva-mV5uB4pImc.html;
    }

    root        /home/www/{你的域名}/public;
}

最后

nginx -t
nginx -s reload

参考:使用ACME申请证书(证书自动续期)