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