le官方给的生成工具实在有点太繁琐 要各种依赖包
这里分享一个 快速生成的脚本 https://github.com/xdtianyu/scripts/tree/master/lets-encrypt
首先 先获取文件
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh chmod +x letsencrypt.sh
修改letsencrypt.conf内的内容 改为本站的域名 因为本站用了cdn 域名更新不方便 就拿loliyun做下实验
ACCOUNT_KEY="letsencrypt-account.key" DOMAIN_KEY="loliyun.cn.key" DOMAIN_DIR="/var/www/loliyun.cn"# 网站目录 DOMAINS="DNS:loliyun.cn,DNS:www.loliyun.cn"
执行脚本
./letsencrypt.sh letsencrypt.conf
在当前目录下就会生成证书
loliyun.chained.crt loliyun.cn.key
编辑nginx配置文件
把80端口 改为443
listen 443 ssl; ssl_certificate /root/loliyun.chained.crt; ssl_certificate_key /root/loliyun.cn.key;
再创建一个server{} 把80端口重定向到https
server
{
listen 80;
server_name loliyun.cn *.loliyun.cn;
return 301 https://www.loliyun.cn$request_uri;
}重启nginx
因为证书有效期是90天 编辑一下letsencrypt.sh 里面 在最后加入一条ngnix重启的命令
然后cron任务
0 0 1 * * /脚本位置/letsencrypt.sh /脚本位置/letsencrypt.conf >> /var/log/lets-encrypt.log 2>&1
配置完成 每月都会重新生成证书并且重启nginx