首页 > 代码库 > SSL与HTTPS,HTTP有什么联系
SSL与HTTPS,HTTP有什么联系
有人问:http和https有什么区别?
HTTP,全称"Hyper Text Transfer Protocol",是从浏览器访问网站时使用的默认协议.由于浏览器到网站之间的数据传送是明文方式,容易受到中间人攻击和窃听,不适合如银行账号,口令等敏感信息的传送. 如新浪http://www.sina.com.cn.
HTTPS,代表Hyper Text Transfer Protocol Secure,将SSL/TLS加密和认证功能融入到HTTP协议里面,在信息传送前先通过SSL/TLS协议加密,收到的信息会先被浏览器解密,再显示出,从而保证了网上交易时的安全. HTTPS广泛用在网上交易\支付\敏感信息下载(如电子邮件)等领域. 如招行网上银行
如何启用HTTPS
为了准备让Web服务器接受HTTPS连接,管理员必须创建一个Web服务器的SSL证书。 此证书必须由一对浏览器信任的证书颁发机构接受,如VeriSign, GlobalSign, Geotrust, Thawte, Comodo等。 浏览器在发布时就已经内置了主要认证机构的签名证书 ,使他们能够验证他们签名的证书。
获取证书
是向SSL代理商购买受信的国际SSL证书.用户不需要安装插件,直接就可以安全访问.
也有不受信的CA机构或个人签发自签名证书, 但是用户需要手工添加的不被浏览器内置的签名证书到受信任根证书列表中。
TLS与SSL协议
Transport Layer Socket和Secure Socket Layer本质上是一样的,是集加密和身份认证于一身的安全协议,为浏览器,IIS,Apache,Exchange Server等所有应用默认支持.
TLS是在SSL(由最早的浏览器厂商Netscape公司推出)基础上,发展成国际标准组织IETF的标准RFC5246。
TLS协议允许客户机/服务器应用程序通过网络进行通信的目的是防止窃听、干扰和伪造的信息。
TLS使用加密和数字签名技术提供在互联网上端点认证和通信的保密性。加密强度可以达到1024或2048位。
在典型的end-user/browser使用,TLS身份验证是单方面的:只有服务器进行身份验证 (客户端知道服务器的身份),而不是相反 (客户端仍然未经验证或匿名)。严格地说, 服务器认证对于浏览器(工具)和最终用户(个人)意义并不完全相同。对于浏览器,它只是意味着浏览器验证服务器的证书,即检查了服务器证书的颁发机构是受信的,有完整的信任链。一旦通过验证,浏览器就显示安全图标(如状态栏上的“小锁”)。但是,仅仅是验证不“确定”服务器到最终用户。
对于最终用户,最好要执行下列操作之一:检查证书机构的根信息,及证书的CA信任链)。
特别是:在“小锁”图标,并不表示所访问的网站是可信的,只是浏览器到网站的信息进行了加密,避免误解。恶意网站不能使用另一个网站的有效证书,因为他们网址URL和SSL证书是一一对应的。由于只有受信任的CA可以嵌入证书中的网址,是为了确保检查与证书中指定的URL明显的网址是识别真正的网站上的有效方式。
TLS的还支持更安全的双向身份认证模式(通常是在企业应用中),即客户端(通常是浏览器)不仅验证安全网站,安全网站也会验证客户端的身份(需要安装客户端或个人证书)。双向验证要求的客户端也持有证书。
TLS/SSL协议建立涉及三个基本阶段:
1. Peer negotiation for algorithm supporthttp://en.wikipedia.org/wiki/Transport_Layer_Security对等协商
2. Key exchange and authentication 密钥交换和认证
3. Symmetric cipher encryption and message authentication 对称密码加密和消息认证
更多请参考
http://en.wikipedia.org/wiki/Transport_Layer_Security
SSL与HTTPS,HTTP有什么联系