fiag
管理员
管理员
  • UID1188
  • 注册日期2004-12-21
  • 最后登录2024-02-19
  • 发帖数4681
  • 经验686枚
  • 威望0点
  • 贡献值402点
  • 好评度51点
阅读:8229回复:1

基于 Let' Encrypt 的 Nginx HTTPS 开启指南

楼主#
更多 发布于:2016-07-16 23:06
1. 背景
开启 HTTPS 有什么好处?
- 安全性好。不会被域名劫持,WIFI嗅探
- 速度快,结合 HTTP/2 可以做到多路复用
- 据说谷歌收录有侧重。

Let' Encrypt 是什么?
Mozilla 主导的免费 HTTPS 证书。目的为了推动更安全的互联网,和 Mozilla 的价值观完全吻合,让更多人用上 HTTPS。传统的HTTPS证书颁发机构,年费很贵,大约每年100-1000元不等。
主页:https://letsencrypt.org/

2. Let' Encrypt 证书申请

由于是免费证书,所以也就完全靠程序自助。刚刚推出了更方便的 certbot 程序(https://certbot.eff.org/),网站上有各种操作系统的安装指南。
以 Gentoo 为例,只需要执行一行命令即可完成安装。其他 OS 也有相应的安装包,包名基本都是 certbot,参考上面网站的指南即可。

安装完毕后有就有了 certbot 命令了。

申请证书前需要先确认
a)  申请域名的DNS设置:域名映射的IP必须跟运行certbot的机器是一致的。申请证书时颁发的服务器会通过DNS记录来校验域名所有权。
b) 关闭443端口的服务:certbot会启用443端口来做校验。如果有运行 nginx,则先手工停止 nginx

申请证书执行下面的命令。
# certbot certonly --standalone -d firefox.net.cn -d www.firefox.net.cn


运行结束后,证书会自动保存到 /etc/letsencrypt/live/firefox.net.cn 下。
然后只需要配置 nginx 了

3. nginx https 配置
与一般的HTTP的配置主要会增加或者修改下面这些配置
server {
        listen 443 ssl http2;  # 监听 443 端口也就是默认的 HTTPS 端口
        listen [::]:443 ssl http2; # 这条是针对 IPv6 的配置,如果服务器有 IPv6 地址可以添加。
        ssl on;
        ssl_certificate /etc/letsencrypt/live/www.firefox.net.cn/fullchain.pem;  # 公开的证书
        ssl_certificate_key /etc/letsencrypt/live/www.firefox.net.cn/privkey.pem; # 证书的私钥
}
其他的保持原有的配置即可。重启 nginx 就可以使用 https 了。

4. 证书的更新
有可能由于 let's encrypt 免费的特性,所以证书的有效期只有90天。90天后证书就是失效了。一般来讲设置cron,自动renew就可以了
例如在 /etc/cron.d/ 下放置一个脚本 renew-cert
@daily root /usr/bin/certbot renew --standalone --pre-hook '/etc/init.d/nginx stop' --post-hook '/etc/init.d/nginx start' >/var/log/renew-cert.log 2>&1
--pre-hook 在申请更新证书前执行。即把 nginx 服务停止,把 443 端口释放出来
--post-hook 在证书更新后执行。这里就把刚刚停止的 nginx 服务恢复启动起来。

renew 命令会更新在这个服务器上申请的所有证书,自动判断是否需要更新,不需要更新的证书会自动跳过。

做完这些就可以安心的享受 HTTPS 了。Have fun!

附录.  如何把原来HTTP80端口的访问自动重定向到HTTPS端口?
一般来讲被收录的页面,在搜索引擎里更新比较慢,需要一个过渡时期。
好处是让从搜索引擎或者手工输入网址进入的网友能够自动衔接,无察觉透明式重定向。
直接上代码
server {
        listen 80;
        listen [::]:80;
        server_name firefox.net.cn www.firefox.net.cn;
        rewrite ^(.*) https://www.firefox.net.cn$1 permanent;
}

最新喜欢:

meteormeteor yfdyh000yfdyh0... fang5566fang55...
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2024-04-15
  • 发帖数625
  • 经验571枚
  • 威望0点
  • 贡献值110点
  • 好评度99点
1楼#
发布于:2016-08-08 14:44
用webroot模式来获取/更新证书感觉更好些,不需要中断服务
游客

返回顶部