HTTP / HTTPS / SSL / TLS
HTTP
HTTP 现在可能是当今世界上使用最广泛的协议了,在标准 HTTP 中你的计算机和Web服务器之间所有信息都会以明文形式通过互联网传输(如:你的身份证信息、银行卡号或密码),因此你的敏感信息很容易受到黑客的攻击。
你的信息必须经过公共互联网才能到达Web服务器,这使你的敏感信息容易受到攻击。因为在数据传输过程中,互联网上某个地方的黑客都可以侦听并窃取你的信息。就安全而言这是一个很严重的问题,所以这就是需要HTTPS的原因。
HTTPS
HTTPS 代表安全的超文本传输协议,它具有安全的HTTP检索数据加密功能,确保计算机与Web服务器之间通信传输的安全性。HTTPS 通过加密算法对正在传输的数据进行加密来实现通信安全。
如我的 Blog 正在使用 HTTPS,你的敏感数据将受到保护,许多浏览器还在会在地址栏上显示一个挂锁的符号 🔒 表示已经启用 HTTPS协议,所有的信息将不会以明文形式发送。黑客如果试图在侦听你的信息,他得到也是加密后的数据并且黑客无法破解,所以这些数据也是毫无意义的。
SSL
现在安全HTTP通过使用两种协议之一来保护数据,其中之一是SSL。
SSL是安全套接层,是一种用于确保互联网安全的协议,它使用公共密钥加密来保护数据安全。
计算机连接到使用SSL的网站时,计算机的浏览器将要求该网站提供SSL证书副本。SSL证书用于验证网站身份,让你的计算机知道你所访问的网站是可信任的。所有这些步骤完成后,就可以和Web服务器之间交换加密数据了。
基本上这就是SSL的工作方式。
TLS
TLS是传输层安全性协议,目前最新的行业标准加密协议,目的是为互联网通信提供安全及数据完整性保障。它的前身是SSL,TLS并且基于前身相同的规范也对Web服务器进行身份验证并加密通信。
现在很多网站都启用了HTTPS协议,这与Google相关,因为没有启用HTTPS保护的网站将会被标记为不安全并将网站排名下降。
SSL证书申请
免费的SSL证书平台
- 海外各云平台:Amazon AWS(* 如果使用AWS推荐)
- 国内各云平台:阿里云、腾讯云、华为云、百度云
- 宝塔平台(如果部署宝塔可以直接后台申请)
- FreeSSL.cn
企业推荐购买企业型SSL证书、增强型SSL证书
证书配置
Nginx
server {
listen 80 443; # HTTPS 需要使用的端口
ssl on; # 开启 Nginx SSL 模块
ssl_certificate /etc/ssl/certificate.crt; # 网站新证书路径
ssl_certificate_key /etc/ssl/private.key; # 网站新私钥路径
server_name your.domain.com; # 域名
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location / {
root /home/www/public/; # 域名映射根路径
index index.html;
}
}