Let's Encrypt

现阶段网络安全愈来愈应该获得重视,各个阶段的网络劫持愈来愈严重了。微博、简书等各个比较主流的网站天天都要遭遇无数次的运营商劫持,而解决办法不是去找运营商扯皮,而是从自身开始全面部署HTTPS。HTTPS 经过 TLS 层和证书机制提供了内容加密、身份认证和数据完整性三大功能,能够有效防止数据被查看或篡改,以及防止中间人冒充。Let’s Encrypt 是由 ISRG 提供的免费 SSL 项目,由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等组织发起,如今已经获得 Google、Facebook 等大公司的支持和赞助,存在的 意义就是为了推进 HTTPS 的发展,目的就是向网站免费签发和管理证书。python

准备

在部署以前,要首先把域名解析到你的服务器对应的 IP 上面,而且要测试能够能够 ping 通,由于以后的自动部署过程会经过这个方式来验证域名的全部权。这里最常常碰到的问题就是:nginx

DNS problem: NXDOMAIN looking up A for www.xxx.com

这个问题的主要缘由通常都是出如今 DNS 的解析上面的,可是我在部署的过程当中发现本地机器能够 ping 的通,也能够正常访问,但就是在服务器上 ping 不通,这时候能够去看看域名解析的线路。若是是阿里云的话建议直接默认便可,选择单一的线路有可能会出现这个问题。安全

安装 Certbot

网络上有不少民间开发的一键部署工具教程,其实说的都是良莠不齐。其实彻底能够经过官方提供的部署工具,绝对是最方便快捷的。Let's Encrypt 官方推荐使用 Certbot 来一键部署,咱们首先要安装一下,这里以 Ubuntu16.04 为操做系统, Nginx 为 Web 服务器:服务器

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx

这样就会安装一个 certbot 的工具,这个工具主要用来申请证书、自动部署以及往后的续约使用。网络

开始

Certbot 支持不少的操做系统和 Web 服务器,固然也有支持 Nginx 的,它提供了两种方式来部署,其实都差很少。工具

sudo certbot --nginx

运行命令后会让你选择一个须要配置证书的域名,根据数字选择便可:测试

而后会询问你是否要把 HTTP 的请求都跳转到 HTTPS :网站

运行这个命令后,将会获得一个证书给你,而且 Certbot 会自动编辑你的 Nginx 配置来保证能够正常使用。固然还能够手动来:阿里云

sudo certbot --nginx certonly

这个命令会帮你生成证书,而且保存下来,以后你就能够拿着证书自行去配置 Nginx 了。加密

自动续订

Let's Encrypt 申请的证书默认有效期是 90 天,在到期的前一个月是能够进行续订的。并且 Certbot 很人性化的附带一个 cron 做业,在到期以前会自动更新您的证书。咱们能够经过运行如下命令来测试证书的自动续订:

sudo certbot renew --dry-run

该命令只是测试是否能够续约而且生成证书,可是并不会替换掉实际的证书,等咱们测试确承认行后,就能够去掉--dry-run参数而且把命令加入系统的定时任务中了。

@monthly root /usr/bin/certbot renew

欢迎关个人我的公众号:左手代码

相关文章
相关标签/搜索