http://jeffyyko.blog.51cto.com/28563/142280
SSL应用系列之三:去掉讨厌的证书提示警告(多图精解)
2009-03-25 12:14:14
标签:证书 CA 警告 提示窗口 晒文章
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/142280
其实,本节讨论的内容应该归属于CA系列的,但其中涉及到的内容和SSL应用系列之二比较紧密,在之二一文中未能详细描述,所以就把这个内容作为SSL应用系列之三来讲解了,其实,SSL、CA、IIS等这些东西都是相互关联,很难独立存在。
废话不多说,今天主要和大家讨论一下为什么会有证书提示警告及如何取消。
阅读本文,你将了解到以下内容
◆为什么会有证书提示窗口
◆什么情况下会出现提示窗口
◆2种导入根证书的方法
◆如何取消窗口提示
本文导读目录
一、分析证书出现提示框的原因
二、分三种情况进行讨论
三、依据三个提示分析解决步骤
第一个提示:证书不被信任,分析与解决
第二个提示:证书时间过期,分析与解决
第三个提示:证书名称无效或不匹配,分析与解决
我们还是以SSL应用系列之二里的一个website的例子作为开始。
一、为什么会有证书提示窗口
我们知道,在证书提示窗口上,一共会体现出三个信息如图:
第一个提示:此证书是否由受信任的证书颁发机构颁发
如果是,则为绿色√,否则就会出现黄色叹号
第二个提示:此证书是否在有效期内
如果是,则为绿色√,否则就会出现黄色叹号
第三个提示:证书上的名称与站点名称是否匹配
如果是,则为绿色√,否则就会出现黄色叹号
OK,如果三个提示的结果均为绿色√,那么就直接解析后面的网页,而不会有任何提示。反之,有任何一个不满足,则会出现类似上述的提示。
现在大家应该知道,为什么会出现提示了吧,其实这也是微软处于安全考虑的一项措施,因为如果我们忽略这些提示,一样可以顺利的访问网站。
OK,现在我们就上面的提示,一个个来讲解。
第一个提示:
为什么会有此提示? 其实,在我们安装好Windows后,系统就会内置100多个证书,其实这些证书都是世界知名公司、企业、或机构的根证书,我们在访问某些由
这部分证书颁发机构颁发的证书加密的网站时,就不会出现第一个提示错误的情况,为什么这么说?因为本机里的受信任根证书颁发机构里有了这些根证书,也就相当于,本机信任这些根证书机构颁发的证书。
不知道大家有没有理解这句话 。我来举个例子,比如证书颁发机构相当于公安部,每个人的身份证则相当于自己的一份独有的证书,在很多场合或环境下,为了表明自己的身份,就需要出示自己的身份证,因为上面有我们的一些很基本信息,这些信息足以证明我就是本人,对方在查看身份证的时候,就类似浏览器在检查某个证书是否合法,因为我们都知道身份证是由公安部这个权威部门,由这个部门颁发的身份证一定是真实有效的,所以就自然认定你就是本人。类似的,本机里预装的100多个可信任的根证书颁发机构就等同于我们的脑海里的公安部。当浏览器检测到一个新证书时,它回去查看证书的颁发者是否在自己的信任机构内,如果是,则就会信任这份证书,否则就不信任,此时就会弹出这样的提示,告诉你,浏览器检测到的这份证书并不是受信任的根证书颁发机构。
说了那么一大段,希望可以帮助你理解第一个提示出现的原因。可能有朋友要问怎么查看这些根机构? 其实很简单,打开IE浏览器,选择 【工具】/【internet属性】/【内容】/【证书】/【受信任的根证书颁发机构】,如下图:
这些便是预设的受信任的根证书颁发机构。
知道原因,问题就好解决了。
为了方便实验,我已经将环境搭建完毕,如下图:
如果我们把根证书加到本机的受信任的根证书颁发机构内,问题不就解决了么!
OK,这里我会告诉大家2种方法来将此证书添加至本地的受信任证书机构内。
方法一:证书链安装法
这个应该是最简单的方法了,下列是操作步骤:
首先进入[url]http://ip/certsrv[/url] 也就是证书的网页申请页面,然后依照图示操作:
点击【Y】之后,根证书就导入到当前用户的证书里了。但请注意,没有说导入到本地计算机,而是当前用户,为什么呢?我们知道,默认使用certmgr.msc打开的就是当前用户的证书管理器,如果想打开本地计算机的证书管理器,需要用到mmc命令来添加,具体操作就不详述了,这个会放到CA系列里再讲。
我们到证书管理器里看有没有这个证书,用certmgr.msc打开,然后找到下列位置:
从指纹码上我们可以看到,这个就是刚才导入的根证书,我们导入根CA的证书链,里面就包含了根证书。
OK,根证书已导入完毕,我们来看看效果:
大家可以看到,安装了根证书后,第一个叹号就去掉了。
可能有网友会问,当前用户和本地计算机有什么区别呢?一句话,将证书导入到当前用户的根信任区域只能在此用户下得到信任,而导入到本地计算机则是针对本机的,所以是个应用范围大小的问题。
这个方法有一定的局限性,一般内网用的比较多,当然你也可以把证书申请页面发布出去,这样外网也可以直接导入了。
方法二:根证书导入法
获取根证书的方法有很多,这里只说一种,其余方法会在CA系列里详述。
我们可以直接到CA颁发机构里导出根证书。
在【运行】输入certsrv.msc,打开CA
右键CA名称,选择属性。
点击【Finish】即可完成证书的导出。
证书导出后,剩下的就是导入的操作了。
点击【运行】,输入mmc,打开控制台后
选择【文件】/【添加/删除管理单元】,然后依图所示
之后一直确定即可完成添加。
然后,如下图:
然后浏览到刚才保存的根证书文件,导入即可。
我们来看一下效果。
OK,这样第一个提示叹号的问题就解决了。
第二个提示:
这个应该是最不容易出问题的了,如果当前时间在证书的有效期内,就没问题。这里只想和大家说一点,就是需要区分证书颁发机构的有效期和证书有效期。咋一看很相似,其实还是有一定区别的。不知道大家是否记得,在安装CA的时候,会提示让我们设置一个时间,如下图:
这个时间就是证书颁发机构的有效期,默认为5年,请注意企业根CA和独立根CA机构的默认期限均为5年。但所申请的证书,前者默认为2年,后者则默认为1年。
第三个提示:
最后一个应该是老生常谈的问题了,论坛里也有不少解决办法,但都很零星,这里做个小结希望可以帮到大家。
我们来举一个例子,这里我们来搭建一个SSL加密的网站环境。由于在SSL应用之二中已经有较详细的步骤说明,这里就只截取一些重要的图进行讲解,望见谅。
首先交代一下环境
计算机名称:DC01
CA机构名称:CA01
本机的一个IP:10.0.0.25
这里我们用上一篇文章的第二种方法为这个站点申请证书,如下图示:
请大家注意红色框里的内容,这里让我们输入的是这个证书的common name,也就是通用名。这个名称非常重要,因为在生成的证书的Issued to 后面的就是这里的通用名,默认为该计算机的名称。请大家记住这里的ca01,后面会用的到。
这里不做修改,直接继续,后面的步骤省略。
申请完成后,证书就是这样的:
颁发的对象就是我们在common name 里填写的名称,是一模一样的。
OK,我们来试着访问一下。
我们先用[url]https://10.0.0.25[/url] 来试一下,如下图:
大家可以看到,此时出现的这个提示,就告诉我们安全证书上的名称无效,或者与站点名称不匹配。
为什么会出现这个提示呢???? 其实图中的提示已经说的很清楚了。
告诉你。你的安全证书上的名称无效、 或者是有效但是与站点名称不匹配。
其实,上图中所指的安全证书是的名称就是Issed to 后面的名称,即dc01
而站点名称又是什么呢? 正是我们在地址栏里输入的名称,即10.0.0.25
显然,2个名称都有效,只是不匹配而已,那,如果我们都把这个名称写成一样的,是不是这个叹号就消失了呢? 来试试吧
由于我的网卡上设置了2个IP,如果把地址栏里的改成[url]https://dc01[/url],这样肯定无法访问。所以我打算把证书的common name改成和地址栏里的一样,即把证书颁发给10.0.0.25。OK,开始做吧:
其余步骤省略,证书申请完后,查看到的属性如下图:
我们再来访问一下,还是以[url]https://10.0.0.25[/url] 作为访问地址,来看一下访问结果:
OK,大家可以看到,此时不再提示名称不匹配,第三个提示的问题搞定了。
当然,生产环境下,一般不使用IP作为通用名称。
现在大家应该知道为什么你的站点 会有这个提示了吧,其实很简单,不是么。
说明:因为我的测试环境是装的英文系统,所以不少图都是英文的。还有些中文图,那是我在客户端上抓的,请见谅!
本文出自 “许一君的原创技术博客” 博客,请务必保留此出处http://jeffyyko.blog.51cto.com/28563/142280