这两者不都是用来加密客户端(浏览器)和服务器之间的通信吗?
HTTPS是HTTP(超文本传输协议)加上SSL(安全套接字层)。要使用任何使用SSL的协议,您需要一张证书。
SSL允许以安全方式通信。它使客户端能够(a)验证它们正在与期望的服务器进行通信而不是中间人,并且(b)加密网络流量,以便除客户端和服务器之外的其他方无法看到通信。
SSL证书包含公钥和证书颁发者。客户端不仅可以使用证书与服务器通信,还可以验证该证书是否由官方证书颁发机构进行了加密签名。例如,如果您的浏览器信任VeriSign证书颁发机构,并且VeriSign签署了我的SSL证书,则您的浏览器将固有地信任我的SSL证书。
这里有一些好的阅读材料:http://en.wikipedia.org/wiki/Transport_Layer_Security
一种解决方案的两个组成部分。
https是协议,它定义了客户端和服务器如何协商建立安全连接。
SSL证书是双方用来确认服务器身份的文件。
HTPS是新的HTTPS。 HTTPS极易受到SSL剥离/中间人攻击的威胁。 引用亚当·兰格利(谷歌)的博客imperial violet:
“HTTPS倾向于导致人们嘲笑证书安全和周围生态系统。”
问题在于该页面未通过HTTPS提供服务。本应如此,但是当用户在浏览器中键入主机名时,默认方案为HTTP。服务器可能会尝试将用户重定向到HTTPS,但该重定向不安全:MITM攻击者可以重写它并使用户保持在HTTP上,整个时间欺骗真实网站。攻击者现在可以截取所有流向此完全配置良好且安全的网站的流量。
这称为SSL剥离,它非常简单且具有毁灭性的效果。我们可能很少看到它,因为企业代理不需要执行此操作,因此它不在现成设备中。但是这种喘息很可能不会持续太久,也许已经结束了:如果正在使用,我们又怎么知道呢?
为了防止SSL剥离,我们需要使HTTPS成为唯一的协议。我们无法为整个互联网做到这一点,但我们可以使用HTTP Strict Transport Security(HSTS)逐个站点进行。
HSTS会告诉浏览器,总是使用HTTPS向HSTS站点发出请求。站点通过内置于浏览器中或广告头部来成为HSTS站点:HTTPS是一个应用层协议。它可以通过数字签名提供单个请求或响应的不可否认性。
SSL是一个较低级别的协议,没有这种能力。SSL是传输级别加密。
HTTPS比SSL更灵活:应用程序可以配置所需的安全级别。SSL选项较少,因此设置和管理更容易。