Exchange 2007 中涉及了很多证书的问题,搞的很烦,慢慢写一些,希望对大家有用。

Web 证书怎样避免浏览器报错

当我们去访问一个网站的时候,有时候会报有关证书的错,我们以 ZOL 的 web 举例,当我们访问 https://mail.zol.com 的时候,会看到有关证书的错误:

 

image

 

首先,这个证书是由一个不被信任的证书颁发机构颁发的。

其次,证书过期或者失效了

再次,证书颁发给的是另外一个站点,不是你所访问的站点

 

来看看具体的证书吧~~~

image

证书被打了个红色的叉,说明有错误,IE 也会以红色显示,以说明这是个高危的站点。

 

a. 证书首先提示你,证书颁发机构(CA)的根证书不在你本地信任的证书存储中。

b. 这个证书是颁发给 mail.zol.com.cn 的,而我们访问的是 mail.zol.com, 这也是IE提示我们网站的证书是颁发给另外一个机构的原因。

c. 明显滴,有效期从 2006/10/23 到 2007/10/23. 现在已经… 失效好多年了。

 

当我们安装了根证书,访问正确的URL时,IE的错误就只剩下“有效期”了。

image

虽然有这么多错误,却丝毫不会影响这个证书的加密功能,只要公私钥都存在,加密功能依然完好,只不过IE提示是出于好心,以免你访问了一个假冒的网站。

 

不同的浏览器,遇到这种情况,会有不同的症状

image

由此可以看到 Web 服务器证书的三个条件。

 

1. 信任这个站点的证书颁发机构

2. 证书没有过期或被吊销

3. URL地址要和证书保持一致

 

 

 

IE是怎样检查这三个条件的

有没有过期很好检查,看证书上的有效期就可以了;URL地址检查也很容易,只需要看IE访问的地址,是否和证书中颁发的地址是否相同。

 

怎么样检查证书是否被信任?

 

当我去访问 https://mail.google.com 的时候,发现 IE 没有报错,说明这个证书是被计算机信任的。

image image

打开证书,发现颁发者是 Thawte SGC CA, 计算机为什么信任这个颁发机构呢?

 

Thawte SGC CA 虽然是颁发者,但它并不是根CA,打开证书路径,我们看到根证书颁发者是 Class 3 Public Primay Certification Authority。

打开计算机上的 inetcpl.cpl  选择内容选项卡,猛击证书按钮,在信任的根证书颁发机构中 列出了所有信任的证书颁发机构,我们可以看到 Class 3 Public Primay Certification Authority 这个颁发机构也是被信任的。

image

 

如果你够钻牛角尖,把所有这些信任的证书全部删除(或者从certmgr.msc删除),你会发现一个有趣的现象https://mail.google.com (实际会跳转到https://www.google.com这个站点还是被信任的。既然信任的根证书已经不存在,那么为什么这个网站还是被信任的呢?着就涉及到Windows 中根证书的更新

 

 

 

Windows 中根证书的更新

在 Windows XP 和 Windows Server 2003 中,添加删除组件中有一项:Update Root Certificates

image

 

这个组件默认是安装的。当你访问的网站证书的颁发机构不被信任的时候,这个组件会自动访问 Windows Update 网站来检查颁发机构的根证书是不是被信任,如果是信任的证书,系统会自动下载此证书,并把它存放在信任的证书存储中。在事件日志里,你会看到像这样的记录:

 

image

image

 

Vista 和 Windows Server 2008 中这个组件已经集成到系统中了,在日志中,也会看到下载证书的记录。其实,在访问https的网站,看S/MIME的邮件,或者你下载了一个证书签名的ActiveX控件,如果这时你碰到了一个新的根证书,系统都会到Windows update网站上去检查的,不会有任何提示。

 

image

 

当然不是所有的根证书都会被Windows Update 网站更新,我们可以根据下面的知识库文档来检查。

http://support.microsoft.com/kb/931125

 

其实在Windows XP 中,通过Microsoft Update, 我们还会收到一个可选的更新,这个更新其实就是用来更新计算机中的根证书的,可以从Microsoft Update Catalog 上下载这个更新。

 

image

 

如果你是一个证书颁发机构,根据微软的一系列要求,你也可以把根证书放在Windows update的网站上,然后你颁发的证书就会被全世界的Windows所信任,酷吧。值得一提的是,客户端从Windows update 网站实时下载证书的时候,是不经过加密的,不知道会不会有安全的隐患。

http://technet.microsoft.com/en-us/library/cc751157.aspx

 

 

怎样检查证书是否被吊销

如果证书颁发机构把你的证书给吊销了,就好比你的驾照被吊销了,但是驾照依然在你手中,那么浏览器是怎么样知道的呢,很简单,问一问证书颁发机构就知道了。

 

证书中有一项叫做 CRL distribution point, 意思就是被吊销证书列表存放的位置。

image

IE会实时的检查这个列表,以此获得证书是否被吊销的信息。

image

 

还有一种查询方法,不需要每次下载列表,叫做 联机证书状态 查询,省去了每次下载列表之苦。 Windows Server 2008 的CA支持 Online Certificate Status Protocol (OCSP)。

 

 

 

Extended Validation SSL Certificates

微软在做 IE7 的时候和一些CA开发了一种新的证书,EV Certificate, 当你访问的网站含有这种证书的时候,IE7,IE8 会有相应的提示。这种证书的不仅有加密通讯的作用,更重要的作用是反钓鱼,帮助你确认网站,指明,你所访问的网站就是你要访问的网站。

 

image

 

如果没有变绿,说明证书不是EV SSL证书。

image

 

这个功能和 IE 的防钓鱼还有前面提到的 OCSP 功能有关联的,如果你把IE防钓鱼关闭,有可能就看不到绿色的地址栏了。

image

image