我们发现自2017年以来,Chrome浏览器已经把只能HTTP访问的网站列为“不安全”网站,这要就迫使网站维护人员开始关注HTTPS,并逐渐将网站配置成可以通过HTTPS访问的事情提上日程。
HTTP与HTTPS的区别要点
网上关于两者的对比和技术说明的文章不计其数,今天我们抛开复杂的技术术语,以战争为例打个比喻以帮助大家更好的理解。
HTTP是什么?简单理解为本地浏览器与所访问的网站所属的服务器之间的通信传输协议
HTTPS是什么?简单理解为本地浏览器与所访问的网站所属的服务器之间的加密通信传输协议
二战中,电话和电报是一种最常见的通信手段。
电话的通信是明文沟通,敌军或间谍是很容易在线路上窃听,对于战争来说就会造成灾难性的后果。
电报的通信是密文沟通,双方如果事先没有拟定好密码本,即使收到电报信号之后也难以理解真实的含义。
协议 | 通信主体 | 通讯线路 | 加密 | |
---|---|---|---|---|
网站 | ||||
HTTP | 浏览器-网站服务器 | OSI应用层(虚拟)80端口 | 无 | |
HTTPS | 浏览器-网站服务器 | OSI传输层(虚拟)443端口 | CA证书(也叫SSL证书) | |
军队 | ||||
电话 | 上级-下级 | 假设有线电话 | 无 | |
电报 | 上级-下级 | 无线电 | 密码本 |
总结:与普通通讯相比加密通讯主要是多了一个通讯双方协商好了的密码方案(CA证书或密码本)
HTTPS有什么好处?
既然是加密传输,那么对于:网站登录、支付、邮件等安全要求较高的场景是有较大作用的,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
有些场景下HTTPS是不必要的,比如看新闻、看视频
HTTPS工作原理
与电报通讯如出一辙,HTTPS的工作原理如下:
- 事先协商:浏览器厂家与CA证书厂家协商一些出色的加密方案,达成一致后形成规定
- 域名关联:由于域名是网站最常见的访问方式,所以要为域名申请对应的CA证书,为A域名申请的证书是对B域名来说就起不来作用
- 加密连接:浏览器与服务器上的CA证书建立一个加密的传输方式,实现HTTPS访问
常见的浏览器厂商包括:Chrome/Firefox/IE等,CA厂家包括:Symantec 赛门铁克,GeoTrust等
如何具体设置HTTPS访问?
- 为网站域名申请一个CA证书(可能有1-3个文件)
- 将CA证书下载到网站服务器
- 网站域名对应的VHOST配置文件中做好与证书有关的路径设置、HTTPS项基本设置。
下面是一个LAMP下HTTPS的典型设置:
代码语言:txt复制<VirtualHost *:443>
ServerName www.mydomain.com
DocumentRoot "/data/wwwroot/default"
#ErrorLog "logs/www.mydomain.com-error_log"
#CustomLog "logs/www.mydomain.com-access_log" common
<Directory "/data/wwwroot/default">
Options Indexes FollowSymlinks
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /data/cert/server.crt
SSLCertificateKeyFile /data/cert/server.key
SSLCertificateChainFile /data/cert/server-ca.crt
</VirtualHost>