准备
记录下部署免费https的过程 ,使用Let's Encrypt的免费证书
下载自动安装脚本`wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto`
安装
- 执行脚本
./certbot-auto --nginx
这里会下载一些东西,让后让你选择你需要加https的域名,这个域名是在nginx.conf
中配置的server
中读取到的。注意选择的域名只能是备案过的那个域名。因为这个脚本会到DNS
服务器去查这个域名对应的ip
服务器。对不上也是不会给颁发证书的。![]()
- 执行成功后,会让你选择是否把
http
的请求重定向到https
。直接选择2
就行
到这里已经配置成功了,访问下网站就可以看效果了。
点击那个锁还可以看到关于证书的详细信息![]()
总结
其实这脚本就是相当于一键安装包,帮你申请https证书,然后下载到服务器存放,然后在把证书配置到nginx.conf
里边。打开nginx.conf
就能看到新增的配置信息。
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
#该状态代码301告诉浏览器(和搜索引擎)这是永久重定向。这使浏览器记住重定向,以便下次访问时,浏览器将在内部进行重定向
}# managed by Certbot
}
附
由于Let's Encrypt这个证书90天后就过期了,可以使用cron做一个定时任务,因为我这个证书是18号申请的,所以每个月的19号就执行一次,执行crontab -e
后会进入个文件输入0 0 19 * * ./path/to/certbot-auto renew
crontab -e的五个参数分别代表,分钟、小时、天、月、周。
参考
https://certbot.eff.org/lets-encrypt/centos6-nginx
https://bjornjohansen.no/redirect-to-https-with-nginx
http://nginx.org/en/docs/http/ngx_http_core_module.html
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。