目录[-]
一、HTTPS简介
1、什么是HTTPS
引自维基百科超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS)是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议进行通信,但利用SSL/TLS来对数据包进行加密。HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的防护。
2、HTTPS原理
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示:

二、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 官方会给出详细的使用方法,如下图:

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
