Let’s Encrypt HTTPS快速生成

内容时效提醒

本文最后更新于 2017-03-16,距今已约 3518 天。这是一篇较早的文章,技术细节可能已经变化,请结合当前环境验证。

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

测试地址