目录[-]

一、HTTPS简介

1、什么是HTTPS

引自维基百科超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS)是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议进行通信,但利用SSL/TLS来对数据包进行加密。HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的防护。

2、HTTPS原理

客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示:

cerbot_00.png

二、HTTPS部署

你只需要有一张被信任的 CA ( Certificate Authority )也就是证书授权中心颁发的 SSL 安全证书,并且将它部署到你的网站服务器上。一旦部署成功后,当用户访问你的网站时,浏览器会在显示的网址前加一把小绿锁,表明这个网站是安全的,当然同时你也会看到网址前的前缀变成了HTTPS,不再是HTTP了。

1、Let‘s Encrypt 及Certbot简介

理论上,我们自己也可以签发 SSL 安全证书,但是我们自己签发的安全证书不会被主流的浏览器信任,所以我们需要被信任的证书授权中心( CA )签发的安全证书。为了加快推广HTTPS 的普及, EEF 电子前哨基金会、 Mozilla 基金会和美国密歇根大学成立了一个公益组织叫 ISRG ( Internet Security Research Group ),这个组织从 2015 年开始推出了 Let’s Encrypt 免费证书。这个免费证书不仅免费,而且还相当好用,所以我们就可以利用 Let’s Encrypt 提供的免费证书部署HTTPS了。

Certbot是一个利用Let’s Encrypt对HTTPS证书自动化部署的项目,官方网站是 https://certbot.eff.org/ ,选择自己使用的 web server 和操作系统,EFF 官方会给出详细的使用方法,如下图:

cerbot_01.png

2、安装HTTPS

2.1  依赖包安装

$ 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-apache

第三行命令,PPA安装过程中可能会出现安装错误的情况,需要多尝试几次。本人两天尝试了4次才安装成功,包下载速度也很慢。

2.2  证书安装

使用下列命令自动安装,安装过程中需要选择域名、输入邮箱、选择是否强制跳转等。

$ sudo certbot --apache

2.3  自动更新

Let’s Encrypt 生成的免费证书为3个月时间,但是我们可以无限次续签证书。

$ sudo certbot renew --dry-run