HTTPS即HTTP over Transport Layer Security,亦称HTTP over SSL或HTTP Secure,简单说就是加密的HTTP。因为HTTP本身并不安全,通过它传输敏感信息(如用户密码等),很容易被传输路径上的第三者(如代理服务器等)截获而泄露,所以就有了HTTPS,用以加密传输。
启用HTTPS需要在服务器端做一些设置,包括购买/获得一个SSL证书(certificate)——它是服务器的身份证,有了它才能进行加密传输。
关于SSL证书需要注意的是:
证书由一个权威机构(Certificate Authority,简称CA)提供,并有一定时效(一般以年为单位),过期失效
证书提供一对密钥:公钥和私钥。服务器对外发布公钥以声明自己的身份,但私钥只有自己能读取,用来证实自己的身份(后祥)
浏览器在访问一个HTTPS站点时,首先通过一个“握手”(handshake)过程得到一个密钥(并非前述的公钥/私钥),然后通过这个密钥加密此后的HTTP传输。握手的过程如下(中间如有任何一步失败则握手失败):
浏览器访问一个HTTPS站点,如https://vxzsk.com/
服务器返回一个证书,包含服务器的公钥
浏览器通过CA验证证书的有效性
浏览器生成一个随机的字符串做密钥,并用服务器的公钥加密它,然后把它发送给服务器
服务器用私钥解密浏览器发来的加密密钥
此后的通信开始使用这个密钥进行加/解密
另外
用公钥加密的密文只有用私钥才能解开,这属于一种“非对称加密”方法
以上第6步中的密钥是一种“对称”密钥:使用同一把密钥进行加密和解密
更多关于HTTPS可参考:https://en.wikipedia.org/wiki/HTTPS
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程