有人问: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 对称密码加密和消息认证

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。由于这是互联网应用最广泛的安全传输方法,被网银在线支付电商网站、门户网站电子邮件等重要网站广泛使用,所以该漏洞影响范围广大。
OpenSSL漏洞不仅影响以https开头的网站,黑客还可利用此漏洞直接对个人PC发起“心脏出血”(Heartbleed)攻击。据分析,Windows上有大量软件使用了存在漏洞的OpenSSL代码库,可能被黑客攻击抓取用户电脑上的内存数据。

更多请参考

http://en.wikipedia.org/wiki/Transport_Layer_Security

SSL与HTTPS,HTTP有什么联系的更多相关文章

  1. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  2. 和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)

    转自http://blog.csdn.net/bluishglc/article/details/7585965 对于一般的开发人员来说,很少需要对安全领域内的基础技术进行深入的研究,但是鉴于日常系统 ...

  3. Ubuntu Nginx下配置网站ssl实现https访问

    最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...

  4. SSL证书(HTTPS)背后的加密算法

    SSL证书(HTTPS)背后的加密算法 之前我们介绍SSL工作原理了解到当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信.这些复杂的步骤的第一步 ...

  5. 你的MySQL服务器开启SSL了吗?SSL在https和MySQL中的原理思考

    最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...

  6. Springboot 配置 ssl 实现HTTPS 请求 & Tomcat配置SSL支持https请求

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TLS与 ...

  7. Confluence 6 通过 SSL 或 HTTPS 运行 - 备注和问题解决

    备注 在创建证书时候的背景信息: 'keytool -genkeypair' 命令将会创建秘钥对,包括公钥和关联的私钥,然后存储到  keystore 中.这个命令打包公钥为  X.509 v3 自签 ...

  8. Confluence 6 通过 SSL 或 HTTPS 运行 - 为 HTTPS 修改你的 Confluence 基础 URL

    在你的浏览器中,进入  > 基本配置(General Configuration). 单击 编辑(Edit). 修改服务器的基础 URL 为 HTTPS.请参考文档  configuring t ...

  9. Confluence 6 通过 SSL 或 HTTPS 运行 - 重定向所有的 URLS 到 HTTPS 的安全考虑

    尽管现在 HTTPS 现在已经激活并且可用了.老的 HTTP URLs (http://localhost:8090)还是可以访问的.现在你需要重定向所有 URLs 到他们的 HTTPS 链接中.你可 ...

  10. Confluence 6 通过 SSL 或 HTTPS 运行 - 确定你的证书路径

    在默认的情况下,Tomcat 希望 keystore 文件被命名为 .keystore 文件,同时这个文件应该放置在 Tomcat 运行的 home 目录中(这个目录可能与你自己的 Home 目录的路 ...

随机推荐

  1. [HNOI/AHOI2018]排列 贪心

    题面 题解: 把题面的限制换成中文: 如果排在第k位的下标 = 排在第j位的值 ,那么k < j 换一个描述方式: 一个值为x的数要排在第x个数后面. 再换一个描述方式: \(fa[i] = a ...

  2. 常州day5

    Task 1 小 W 和小 M 一起玩拼图游戏啦~ 小 M 给小 M 一张 N 个点的图,有 M 条可选无向边,每条边有一个甜蜜值,小 W 要选 K条边,使得任意两点间最多有一条路径,并且选择的 K条 ...

  3. 【BZOJ5333】荣誉称号(动态规划)

    [BZOJ5333]荣誉称号(动态规划) 题面 BZOJ 洛谷 题解 今天早上贱狗老师讲的.然而我还是不会. 只好照着\(zsy\)代码大力理解一波. 首先观察等式,如果比较熟悉线段树,会发现就是线段 ...

  4. Static全局变量(函数)与普通的全局变量(函数)的区别

    转自:http://www.cnblogs.com/zjvskn/p/5548879.html Static全局变量与普通的全局变量有什么区别? 答: 全局变量(外部变量)的说明之前再冠以static ...

  5. poj 2176 folding

    Description:   就是把一个字符串压尽可能的压缩 #include<iostream> #include<cstring> #include<cstdio&g ...

  6. linux下ffmpeg安装(转)

    1.ffmpeg下载地址: http://www.ffmpeg.org/download.html 2.解压   1 $ tar xzvf ffmpeg.tar.bz2 这里作者假设已经重命名为ffm ...

  7. golang设置代理

    http://note.youdao.com/noteshare?id=a8df0ec2d623f282a782dbe937bdae9f

  8. 手脱tElock 0.98b1 -> tE!

    声明: 只为纪录自己的脱壳历程,高手勿喷 第一种:两次内存法 注: ①这是在win7x32系统上运行的脱壳,所以可能地址不同 ②修复的时候用等级三修复,最后修复不了的剪切掉然后转存合一正常运行,已测试 ...

  9. count distinct

    SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders

  10. at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:142) :json转化“$ref 循环引用”的问题

    原因: entity实体中存在@OneToMany,@ManyToOne注解,在转化json是产生了循环引用 报的错误 解决方法: springmvc @ResponseBody 默认的json转化用 ...