一键升级你的网站为 Https - Certbot

「https」是什么?
「https」是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上。 所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。

上面说的很官方,你可能看不懂,说简单点就是现在常用的浏览器Chrome 、 Firefox、Safari等未来将只重点支持「https」,如果你的网站没有使用SSl,这两个浏览器 将在地址栏的显著位置提醒用户“此网站不安全”和一些浏览器API无法使用。

那我们如何让自己的网站支持「https」?
Let’s Encrypt 证书只有90天的有效期,有没有什么便捷的方法一键生成证书呢?答案是 Certbot。Certbot 真的是便捷,不用去 Let’s Encrypt 注册账号(它会自动帮你注册),不用手动修改配置服务器配置,一行命令搞定。

以我的服务器为例(Nginx on Ubuntu),首先安装 Certbot :

$ 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 

安装好之后,只需要运行一行代码:

$ sudo certbot --nginx

剩下的一切会自动完成。Certbot 会自动帮你注册账户,检测 Nginx 配置文件中的域名,询问你为哪些域名生成证书,是否将 Http 重定向到 Https 等等,最后帮你自动修改 Nginx 配置并重启,这时你的网站已经变成了 Https。
另外由于证书只有三个月的有限期,你还可以运行

sudo certbot renew --dry-run`

Certbot 会帮你启动一个定时任务,在证书过期时自动更新。

还有,如果你只想生成证书怎么办?比如七牛或者upyun云加速域名的证书,Nginx 配置中并没有此域名。同样一行代码搞定:

certbot certonly --cert-name example.com

Certbot 会启动一个临时服务器来完成验证(会占用80端口或443端口,因此需要暂时关闭 Web 服务器),然后 Certbot 会把证书以文件的形式保存,包括完整的证书链文件和私钥文件。
你用的是其他操作系统和 Web 服务器怎么办?官方有详细的文档,你可以在首页选择你的软件查看对应的文档。

2017-9-1Certbot2

既然这么简单就可以升级到 Https ,为什么不使用更加安全的 Https 呢?行动起来吧~

Certbot 官方网站:https://certbot.eff.org/

这里有很多志趣相同的人,可在这里与他们联系