1、准备python、git、nginx环境

2、获取ssl证书

1
2
3
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --standalone --email admin@jidcz.com -d jidcz.com -d www.jidcz.com

第一次运行没有生成pem文件,我停掉nginx后,再执行了一次,生成在/etc/letsencrypt/live/jidcz.com/ 目录下

1
2
3
4
cert.pem  - Apache服务器端证书
chain.pem  - Apache根证书和中继证书
fullchain.pem  - Nginx所需要ssl_certificate文件
privkey.pem - 安全证书KEY文件

3、配置nginx

  配置nginx后发现nginx无法运行起来,需要重新编译nginx增加下面参数

1
2
3
--with-http_ssl_module
# 再查看nginx有的模块
/usr/local/nginx/sbin/nginx -V

  配置文件

1
2
3
4
5
6
7
ssl_certificate      /etc/letsencrypt/live/jidcz.com/fullchain.pem;
ssl_certificate_key  /etc/letsencrypt/live/jidcz.com/privkey.pem;
ssl_session_cache    shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

注意

  如果还是无法访问,请查看防火墙是否开启,端口是否允许访问,如果是用都阿里云,请注意安全组规则是否添加这个端口。

4、证书有效期

  Let’s Encrypt默认是90天免费,需要手工或者自动续期才可以继续使用。

  定时执行下面的命令,jidcz.com替换成你的域名

1
2
cd /home/script
./letsencrypt-auto certonly --renew-by-default --email yourmail@jidcz.com -d jidcz.com -d www.jidcz.com

  编辑定时任务

1
2
3
crontab -e
# 或者下面命令编辑,两者的区别自行百度
vi /etc/crontab

参考教程