🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 1.6 HTTPS ## 1.6 HTTPS HTTPS即HTTP over Transport Layer Security,亦称HTTP over SSL或HTTP Secure,简单说就是加密的HTTP。因为HTTP本身并不安全,通过它传输敏感信息(如用户密码等),很容易被传输路径上的第三者(如代理服务器等)截获而泄露,所以就有了HTTPS,用以加密传输。 启用HTTPS需要在服务器端做一些设置,包括购买/获得一个SSL证书(certificate)——它是服务器的身份证,有了它才能进行加密传输。 关于SSL证书需要注意的是: - 证书由一个权威机构(Certificate Authority,简称CA)提供,并有一定时效(一般以年为单位),过期失效 - 证书提供一对密钥:公钥和私钥。服务器对外发布公钥以声明自己的身份,但私钥只有自己能读取,用来证实自己的身份(后祥) 浏览器在访问一个HTTPS站点时,首先通过一个“握手”(handshake)过程得到一个密钥(并非前述的公钥/私钥),然后通过这个密钥加密此后的HTTP传输。握手的过程如下(中间如有任何一步失败则握手失败): 1. 浏览器访问一个HTTPS站点,如<https://githuber.cn/> 2. 服务器返回一个证书,包含服务器的公钥 3. 浏览器通过CA验证证书的有效性 4. 浏览器生成一个随机的字符串做密钥,并用服务器的公钥加密它,然后把它发送给服务器 5. 服务器用私钥解密浏览器发来的加密密钥 6. 此后的通信开始使用这个密钥进行加/解密 另外: - 用公钥加密的密文只有用私钥才能解开,这属于一种“非对称加密”方法 - 以上第6步中的密钥是一种“对称”密钥:使用同一把密钥进行加密和解密 更多关于HTTPS可参考:<https://en.wikipedia.org/wiki/HTTPS>