* Q! C4 R# i. c0 P# e- f. z5 H它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。。 . f1 C2 ^' A9 X% L' e, z+ m4 C/ K2 \+ m; i o
https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,https的安全基础是SSL,因此加密的详细内容请看SSL。 & F( {) ~( ` ^* C. |
, e1 g! B4 y. B% M2 I O; u) d
它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。 0 W) t6 U" } L1 D C
5 n, v9 {$ `. j9 B
限制 ( q7 ?$ O2 S; u- n. `0 ^8 c
它的安全保护依赖浏览器的正确实现以及服务器软件、实际加密算法的支持. ; h; o' l& A/ c: b7 h/ R1 q7 g: B6 c# n
一种常见的误解是“银行用户在线使用https:就能充分彻底保障他们的银行卡号不被偷窃。”实际上,与服务器的加密连接中能保护银行卡号的部分,只有用户到服务器之间的连接及服务器自身。并不能绝对确保服务器自己是安全的,这点甚至已被攻击者利用,常见例子是模仿银行域名的钓鱼攻击。少数罕见攻击在网站传输客户数据时发生,攻击者尝试窃听数据于传输中。 4 z0 M! ^+ H2 E' ]5 A7 n
, X0 j# E! U2 t- D商业网站被人们期望迅速尽早引入新的特殊处理程序到金融网关,仅保留传输码(transaction number)。不过他们常常存储银行卡号在同一个数据库里。那些数据库和服务器少数情况有可能被未授权用户攻击和损害。 ; h9 i e% u7 W% Y$ d0 x; S5 \
& s& p. i7 x2 I8 g5 ]' X* J1 a
* I! ^7 U5 u: N$ n: P
TLS 1.1之前 + t! T% Q* y8 D5 _& A这段仅针对TLS 1.1之前的状况。因为SSL位于http的下一层,并不能理解更高层协议,通常SSL服务器仅能颁证给特定的IP/端口组合。这是指它经常不能在虚拟主机(基于域名)上与HTTP正常组合成HTTPS。 7 u1 `( U- F% R5 ?( h( s9 S+ F
P, G, r. L9 ^8 B1 M; l! T
这一点已被更新在即将来临的TLS 1.1中—会完全支持基于域名的虚拟主机。 " y2 v6 L/ d7 T7 r9 Z
为 Web 服务器配置 SSL + M1 Y) {* d( f/ F9 y9 H+ P
要在 IIS 中启用 SSL,首先必须获得用于加密和解密通过网络传输的信息的证书。IIS 具有自己的证书请求工具,您可以使用此工具向证书颁发机构发送证书请求。此工具简化了获取证书的过程。如果您使用的是 Apache,则必须手动获取证书。 # }2 C0 T8 M( P ^' X
在 IIS 和 Apache 中,您都会收到来自证书颁发机构的证书文件,此文件必须配置在计算机上。Apache 使用 SSLCACertificateFile 指令读取其源文件中的证书。而在 IIS 中,您可以使用网站或文件夹属性的目录安全性选项卡来配置和管理证书。 ) s3 W0 E1 k$ M4 `8 t