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

用 Certbot 一键升级你的网站为 Https,真的简单。。。(●'◡'●)

小站以前采用的是 StartSSL 的 https 证书,但是 Mozilla 封杀 StartSSL 后一直没有换。前几天终于被 Chrome 报不安全了,于是换成了 Let’s Encrypt

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

file

以我的服务器为例(Nginx on Ubuntu 14.04),首先安装 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 会帮你启动一个定时任务,在证书过期时自动更新。

还有,如果你只想生成证书怎么办?比如七牛云加速域名的证书,Nginx 配置中并没有此域名。同样一行代码搞定:certbot certonly --cert-name example.com。Certbot 会启动一个临时服务器来完成验证(会占用80端口或443端口,因此需要暂时关闭 Web 服务器),然后 Certbot 会把证书以文件的形式保存,包括完整的证书链文件和私钥文件。

你用的是其他操作系统和 Web 服务器怎么办?官方有详细的文档,你可以在首页选择你的软件查看对应的文档。
file

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

⬆️

写的不错,帮助到了您,赞助一下主机费~

扫一扫,用支付宝赞赏
扫一扫,用微信赞赏
2017-08-17 11:28

受用

2017-08-18 09:17

我昨天刚看你的 StartSSL 的 https 证书教程,加上https,可是遇到了访问七牛云的文件的时候还是告诉我我的网站不安全,然后我就来大神这里取取经,没想到又遇到干货了,真心为楼主赞一个。

lufficc #863
2017-08-22 12:35

@yase 谢谢~

2017-08-23 11:09

centos 如何实现呢??

lufficc #867
2017-08-23 12:28

@Laragh https://certbot.eff.org/#centos6-nginx 你看看这个?

可以在首页选择操作系统的:

2017-08-23 15:02

@lufficc 提示错误,需要安装python

root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of cryptography will drop support for Python 2.6
  DeprecationWarning
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):
2017-08-23 17:36

V2EX过来的,请帮忙解决一下: 我是小白!
我的vps是centos6 64位, 我按照https://certbot.eff.org/#centos6-nginx 这个方法,准备安装certbot, 但是进行到 : $ sudo ./path/to/certbot-auto --nginx 这1步, vps显示: -bash: sudo: command not found 网上找了半天,也不知道怎么解决, 特来求助!

lufficc #870
2017-08-23 19:11

@Laragh 你服务器的 Python 版本太低了,升级一下吧

2017-08-25 12:24

偶尔续期的时候可能会失败,不晓得咋回事。

2018-03-22 23:53

@lufficc 我是用的apache,然后按照教程去做了,然后弹出了这么一堆东西
Error while running apache2ctl graceful.
httpd not running, trying to start
Action 'graceful' failed.
The Apache error log may have more information.

AH00557: apache2: apr_sockaddr_info_get() failed for iZj6c52coo41mxjzqb4ateZ
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs

请问这是为啥,谢谢