免费申请 HTTPS 证书,开启全站 HTTPS


免费申请 HTTPS 证书,开启全站 HTTPS

文章插图
 
作者:HelloGitHub-追梦人物
HTTP 报文以明文形式传输 , 如果你的网站只支持 HTTP 协议 , 那么就有可能遭受到安全攻击 。你可以使用 google 浏览器打开一个 HTTP 协议网站 , 会发现 Chrome 在网址的左边将这个网站标记为不安全 。
HTTPS 为 HTTP 报文提供了一个加密传输的通道 , 这样攻击者就无法窃听或者篡改传输的内容 。要启用 HTTPS , 必须向一个可信任机构申请一个 HTTPS 证书 。专业的证书申请需要收费 , 不过对于个人博客网站来说 , 有很多免费的证书申请机构 。比如 Let’s Encrypt , 它提供了免费的证书申请服务 , 申请过程十分简单 , 只需要运行几条命令即可 , 而且证书到期后支持自动续期 , 可谓一劳永逸 。接下来我们就是用 Let’s Encrypt 提供的工具来申请免费的 HTTPS 证书 。
首先安装 Let’s Encrypt 提供的证书申请工具 。登录 https://certbot.eff.org/ 选择我们博客网站使用的服务器软件和操作系统 。教程中以 Nginx 和 centos 7 为例:
首先安装必要工具:
$ sudo yum -y install yum-utils$ sudo sudo yum install -y certbot Python2-certbot-nginxcertbot python2-certbot-nginx 是 Let’s Encrypt 提供的 HTTPS 证书申请的工具 , python2-certbot-nginx 是专门针对 Nginx 的插件 , 使得 Nginx 运行的服务申请证书更加简单方便 。
然后运行证书申请命令:
$ sudo certbot --nginx
【免费申请 HTTPS 证书,开启全站 HTTPS】注意
经测试 , 运行上述命令后有可能报 ImportError: No module named 'requests.packages.urllib3' 的错误 , 这是由于 requests 和 urlib3 版本过低所致(可以参考这个 issue[2] 的讨论) , 解决办法是重装它们 , 运行下面的命令:
$ pip uninstall requests$ pip uninstall urllib3$ yum remove python-urllib3$ yum remove python-requests
然后重新安装 certbot , 由于它依赖上面两个包 , 所以重装时会一并装上:
$ sudo yum install -y certbot python2-certbot-nginx重新执行证书申请命令:sudo certbot --nginx
会有一系列交互式的提示 , 首先会让你输入邮箱 , 用于订阅 。然后输入 a 同意他们的政策 。
接着 certbot 会自动扫描出来域名 , 根据提示输入想开启 HTTPS 的域名标号:
Which names would you like to activate HTTPS for


    推荐阅读