从 HTTP 到 HTTPS - IIS 部署免费 HTTPS
副标题[/!--empirenews.page--]
HTTP当你在浏览器输入一个网址 (例如 http://tasaid.com)的时候,浏览器发起一个 HTTP 请求,带着请求信息 (参见 HTTP Headers),连接到服务器,把请求信息递给服务器,服务器收到信息之后,解析相关的信息,然后进行处理,再返回浏览器请求的数据。 简单来说是这么一个流程:
看图说话: 这其中有个问题,浏览器爸爸和服务器都没有验证清单信息的有效性和对方的身份。万一有人在中间把线程小哥拦下来,暴揍一顿,然后把物品清单给换了怎么办?或者有人把线程小哥在半路上暴揍一顿,拿了清单换了另外一个小哥怎么办? 这是个很严肃的问题:假如服务器要把一些东西锁在柜子里,需要小明给密码才可以打开柜子。然后小明把密码写在清单上让浏览器爸爸交给服务器。这时候,如果这张清单被人拦截下来,不就得到了小明的密码? 简单来说,传输的信息中包含用户密码,被拦截了怎么办? HTTPS正因为HTTP请求有这些安全性的问题,所以HTTPS诞生了,致力于解决了这些安全性问题,我们进行一下对比: 那么HTTPS是如何做到更安全的呢? 简单来说,HTTPS 即是在 HTTP 下加入了一层 SSL 加密,所以被称为HTTPS。具体的加密过程则是 公匙加密法:
公匙密码和算法都是公开的,而私匙则是保密的。加密使用的公匙和解码使用的密匙都是不相同的,因此这是一个 非对称加密 算法。 数字证书提及 HTTPS ,就会听到大家说需要证书才能部署,那么什么是证书呢? 因为互联网不安全,公匙也是信息的一部分,也是会有被篡改的风险的。所以引入了互联网权威机构 - CA 机构,又称为证书授权 (Certificate Authority) 机构,浏览器会内置这些"受信任的根证书颁发机构" (即 CA)。 服务端向权威的身份鉴定 CA 机构申请数字证书,CA 机构验证了网站之后,会把网站录入到内部列表,采用 Hash 把服务端的一些相关信息生成摘要,然后 CA 机构用自己的私匙,把服务端的公匙和相关信息一起加密,然后给申请证书的服务端颁发数字证书,用于其他客户端 (比如浏览器) 认证这个网站的公匙。 客户端通过服务端下发的证书,找到对应的 CA,然后向 CA 验证这个证书是否有效,CA 验证通过之后,下发服务端的公匙。 因为 CA 是权威并且可信的,所以客户端 (浏览器) 信任 CA,而 CA 又信任经过认证的服务端 ,所以客户端 (浏览器) 也信任这个服务端,这就是信任链 (Chain Of Trust)。 而 CA 颁发的数字证书,一般包含这些信息: 简单来说:为了保证公匙是安全的,所以通过数字证书验证公匙。 加密通信一条完整的HTTPS请求应该是这样的:
见下图: 有哪些免费证书这里只介绍在 TaSaid.com 部署 HTTPS 中尝试的免费证书方案,部署在 IIS8 上。
本来在 TaSaid.com 迁移中尝试部署过沃通 (wosign) 的签发的免费证书,但是后来发现了 Mozilla 官网( firefox/火狐 背后的开源组织 ) 里列出了 沃通的一系列可疑行为和问题,并且沃通 "秘密" 收购 StartCom(著名的免费 HTTPS 证书 StartSSL 即其旗下产品)行为可疑, Mozilla 基金会正在考虑对沃通以及 StartCom 这两个 CA 机构一年内新签发的所有 SSL 证书进行封杀。 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |