申请letsencrypt证书结合nginx实现网站https访问
2年前 • 867次点击 • 来自 其他
标签: Nginx
参考链接 1:
https://tomoya92.github.io/2016/08/28/letsencrypt-nginx-https/
参考链接 2:
1.初始化配置
安装生成证书工具和nginx
add-apt-repository ppa:certbot/certbot -y && apt-get update && apt-get install python-certbot-nginx -y && apt install nginx
配置nginx
编辑nginx文件
vi /etc/nginx/sites-available/default
server {
server_name devler.cn www.devler
location / {
proxy_pass http://127.0.0.1:8000/;
include conf.d/proxy.conf;
}
}
vi /etc/nginx/conf.d/proxy.conf
# proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 20m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
2.生成证书
注意生成证书之前nginx要启动,而且域名要解析到服务器上
运行命令
sudo certbot --nginx -d devler.cn -d www.devler.cn
跟着步骤操作,最后会发现它把nginx都给配置的好好的,什么都不用管了,最后重启nginx即可
service nginx start
3.自动续期
letsencrypt生成的证书最多只有3个月有效期,这里利用ubuntu的系统自带的定时任务来解决这个问题
运行 crontab -e 命令,进入到定时任务的编辑界面,然后添加上下面这段命令,命令意思是7天运行一次,在夜里3点运行
0 3 */7 * * certbot renew —renew-hook "/etc/init.d/nginx reload"