Technorati 标记:
IIS,
CA,
证书,
SSL,
客户端证书,
夏明亮
[第一部分 环境介绍]
架构
1台CA(独立根CA)
1台IIS Server
1台客户端计算机
版本
所有的计算机OS均为Windows Server 2008 R2,所以IIS为7.0版本。
[第二部分 测试环境准备]
一 搭建一台CA Server
此部分内容相对简单,如果你是刚接触这方面的内容,可以我之前的文章,链接如下:
http://mlxia.blog.51cto.com/972988/1217914
注意:本次环境我再安装证书时选择的是独立根CA,与链接中的不同;其他均为默认设定,无特殊注意事项。
二 搭建一台IIS Server
此部分内容相对简单,如果你是刚接触这方面的内容,可以我之前的文章。
三 创建一个IIS的测试用站点
1. 打开IIS控制台,添加网站站。
![clip_image001 clip_image001](https://i-blog.csdnimg.cn/blog_migrate/561145a56de2897f8e04cca45a61c20c.jpeg)
2.输入站点名称和网页存放的物理路径。
![clip_image002 clip_image002](https://i-blog.csdnimg.cn/blog_migrate/b20c237c7f79ddab8f628274409b4492.jpeg)
3.上图中由于默认端口选的是80与默认站点冲突,因此站点无法启动(不要嫌我烦,做测试呢最重要是心平气和。)
![clip_image004 clip_image004](https://i-blog.csdnimg.cn/blog_migrate/251f94e1c49b7095c5312c14282ea0f8.jpeg)
4.重新编辑绑定,选择一个未被占用的端口。
![clip_image005 clip_image005](https://i-blog.csdnimg.cn/blog_migrate/b643e95df2e8019285a84062f79c03b5.jpeg)
![clip_image006 clip_image006](https://i-blog.csdnimg.cn/blog_migrate/6be40171cf945e90b07f9dbd5c84c558.jpeg)
![clip_image007 clip_image007](https://i-blog.csdnimg.cn/blog_migrate/af44ab98bbda99af688110a08cfaf56c.jpeg)
关闭后,启动该站点。
二 为该IIS服务器申请证书
在申请前先将CA Server的根证书导入“所信任的根证书颁发机构”区域。此部分比较基础,不懂的可以参考我之前的博客,或者谷歌一下,到处都有相关的文档。
1.我们为服务器申请一张服务器证书。
![clip_image009 clip_image009](https://i-blog.csdnimg.cn/blog_migrate/4543aad75f247dcc8c5665abc774493f.jpeg)
2.创建证书申请。
![clip_image011 clip_image011](https://i-blog.csdnimg.cn/blog_migrate/36c852c3e58571032a385d72ed44ec74.jpeg)
这里我打算未来用IP地址访问站点,所以就这么写了,如果大家习惯用DNS Name也可以写成DNS name;另外也可以有办法申请多域名证书,实现无论我使用IP、NetBIOS或者DNS name都呢个正常访问网站。具体可以参考:http://mlxia.blog.51cto.com/972988/1217953
![clip_image013 clip_image013](https://i-blog.csdnimg.cn/blog_migrate/f972c24c1b9bd49e8a8beddaf9f4a4bb.jpeg)
![clip_image014 clip_image014](https://i-blog.csdnimg.cn/blog_migrate/5bebdbfbf78c1f48c56fe65f83eac446.jpeg)
![clip_image015 clip_image015](https://i-blog.csdnimg.cn/blog_migrate/bb332c4e2ceddac556031ecb2106dcfe.jpeg)
这事申请证书时需要提供的申请文件内容。
![clip_image017 clip_image017](https://i-blog.csdnimg.cn/blog_migrate/9ea4f1933a34fba3e38feb85dc1f1427.jpeg)
3.访问证书服务器web注册站点(http://CAServer/certsrv),“Request a certificate”。
![clip_image019 clip_image019](https://i-blog.csdnimg.cn/blog_migrate/8f11adfcc003c1ea6dabbda3d2e1b064.jpeg)
4.advanced certificate request。
![clip_image021 clip_image021](https://i-blog.csdnimg.cn/blog_migrate/d4a453519da0cf62ef6316eda7f4c44d.jpeg)
5.第二项,提交申请文件申请。
![clip_image023 clip_image023](https://i-blog.csdnimg.cn/blog_migrate/131170bb1c0f3d0f2fa3c497662224d9.jpeg)
6.帮上面申请文件的内容Ctrl+A然后Ctrl+v到下图的第一个文本框中。
![clip_image025 clip_image025](https://i-blog.csdnimg.cn/blog_migrate/c0c0eb00d14ffcb9288fe57e91c5a50d.jpeg)
![clip_image026 clip_image026](https://i-blog.csdnimg.cn/blog_migrate/4776ca6fdca31fc18f22471ca7588b3b.jpeg)
![clip_image028 clip_image028](https://i-blog.csdnimg.cn/blog_migrate/4de4384a0908eae9e659583138aea033.jpeg)
9.点击上图中的“Submit”。
![clip_image030 clip_image030](https://i-blog.csdnimg.cn/blog_migrate/02663fb4a2be9610ce73193f515bea6a.jpeg)
10.来到CA服务器,手动颁发刚才申请的证书。(如果你使用的是企业根CA且IIS服务器加入域,那么这个审批会自动执行,无需人工参与)
![clip_image031 clip_image031](https://i-blog.csdnimg.cn/blog_migrate/9adca322402eaf48984f995b08b3a4d9.jpeg)
11.看到被挂起的证书申请。
![clip_image033 clip_image033](https://i-blog.csdnimg.cn/blog_migrate/8da16506355925c6636e4b2cf0743f55.jpeg)
12.手动颁发申请。
![clip_image035 clip_image035](https://i-blog.csdnimg.cn/blog_migrate/8649b8306255411caa228a9471b6cd84.jpeg)
13.查看已颁发的申请。
![clip_image037 clip_image037](https://i-blog.csdnimg.cn/blog_migrate/9d9a5733a1f2f386dc46f51a24717660.jpeg)
14.再回到IIS Server,访问CA Server证书申请站点。选择“View the status of a pending certificate request”
![clip_image039 clip_image039](https://i-blog.csdnimg.cn/blog_migrate/acf3200e9a2f131314df29943bd3d246.jpeg)
15.将证书下载下来。
![clip_image041 clip_image041](https://i-blog.csdnimg.cn/blog_migrate/a905b00df3cb8c6a09028bc374929a17.jpeg)
![clip_image043 clip_image043](https://i-blog.csdnimg.cn/blog_migrate/1cf052098050eb07fcd1b8a03a0ae6c7.jpeg)
![clip_image045 clip_image045](https://i-blog.csdnimg.cn/blog_migrate/c02ea02bfdc3e7a206a1d84385e35ea7.jpeg)
17.保存后找到该证书,并双击打开。
![clip_image046 clip_image046](https://i-blog.csdnimg.cn/blog_migrate/c6a37904e0424b3094a3caefcbf67cd2.jpeg)
18.再次回到IIS服务器,完成证书申请。
![clip_image048 clip_image048](https://i-blog.csdnimg.cn/blog_migrate/9747ada985efae4acd48612fcfc648b7.jpeg)
好记的名字无所谓写什么,只要不冲突,管理员能知道这个证书时干嘛的就行。
![clip_image049 clip_image049](https://i-blog.csdnimg.cn/blog_migrate/af808a07bdf4e54689e617abfb7cf432.jpeg)
完成之后我们可以在IIS服务器的本地计算机证书中看到刚申请的证书。这里就很有意思了,想想看我们是不是也可以在这里为IIS Server申请证书呢,答案是当然的,我之前的博客里也有相关的内容,这里就不给链接了,要么自己思考如何完成,要么就翻博客吧。
![clip_image051 clip_image051](https://i-blog.csdnimg.cn/blog_migrate/238712c949c29607548ad7e2eca161a8.jpeg)
![clip_image053 clip_image053](https://i-blog.csdnimg.cn/blog_migrate/59fc47202aeeedfe9be2ec9de2c21e68.jpeg)
三 IIS站点证书绑定
1.证书申请好了,那么就需要把证书与Web 站点进行绑定。
![clip_image055 clip_image055](https://i-blog.csdnimg.cn/blog_migrate/c4ccc96b9d5abae5e960bee1677dd7e8.jpeg)
![clip_image056 clip_image056](https://i-blog.csdnimg.cn/blog_migrate/dd08ada223198665af37c84fc0c9193b.jpeg)
3.必须选择类型为https才可以选择证书。
![clip_image057 clip_image057](https://i-blog.csdnimg.cn/blog_migrate/5dca009bf7b0a6af48158071a9d68baf.jpeg)
![clip_image058 clip_image058](https://i-blog.csdnimg.cn/blog_migrate/166740564e12f24ecb05d83a6a7388f0.jpeg)
5.哎,为什么访问不了呢;我也不清楚,但是我立即想到似乎这个网站还没有任何网页文件呢;可能是这个原因吧。
![clip_image060 clip_image060](https://i-blog.csdnimg.cn/blog_migrate/4bab114dabd0e5b49e853929820da911.jpeg)
6.那么我们建立一个简单的html文件在d:\test01文件夹下。
![clip_image062 clip_image062](https://i-blog.csdnimg.cn/blog_migrate/59a67279015a32e3be69996bb4d4b211.jpeg)
7.再次访问。
![clip_image064 clip_image064](https://i-blog.csdnimg.cn/blog_migrate/5891f521ab6e23d76140498c2b2431db.jpeg)
8.仔细看看访问的信息
![clip_image066 clip_image066](https://i-blog.csdnimg.cn/blog_migrate/faf02f799e278eec860d2103da5b5c6f.jpeg)
9.我们再来看看网站的SSL设定。
![clip_image068 clip_image068](https://i-blog.csdnimg.cn/blog_migrate/c0f1ff1203d890d019ef305373d64feb.jpeg)
10.这个是默认设定。
![clip_image070 clip_image070](https://i-blog.csdnimg.cn/blog_migrate/6a53f67ef9a148e197f6abe301ad09c7.jpeg)
默认情况下,IIS服务器不要求客户端证书。
11.那么我们看看勾选“要求SSL”的时候访问的情况。
![clip_image072 clip_image072](https://i-blog.csdnimg.cn/blog_migrate/0a215900b2accf16bb8322ab5443e15f.jpeg)
![clip_image074 clip_image074](https://i-blog.csdnimg.cn/blog_migrate/42b13bfb507476568062cd3038320407.jpeg)
![clip_image076 clip_image076](https://i-blog.csdnimg.cn/blog_migrate/7bdb8c04736830d0e3f3335b32ce7c12.jpeg)
忽略的意思是站点不会检查客户端的证书有没有,直接忽略。
12.我们把SSL客户端的设定设置为“接受”;再看看访问情况。
![clip_image078 clip_image078](https://i-blog.csdnimg.cn/blog_migrate/c6295e9629f05d8b9c8262307c13b951.jpeg)
![clip_image080 clip_image080](https://i-blog.csdnimg.cn/blog_migrate/a439c05281935b983e53616ac2ddc9a8.jpeg)
接受的意思是站点会检查客户端有没有证书,证书有没有效;如果客户端的检查结果为没有,那么站点就忽略客户端证书;如果检查为结果为有,那么站点服务器和客户端将使用这张客户端证书进行通讯。
13. 我们把SSL客户端的设定设置为“必需”;再看看访问情况。
![clip_image082 clip_image082](https://i-blog.csdnimg.cn/blog_migrate/e7442bfbf2af98021a9350ed2310ef19.jpeg)
![clip_image084 clip_image084](https://i-blog.csdnimg.cn/blog_migrate/d082ae3af154db3f3bb05857cef379ba.jpeg)
14.为了解决上面的问题,我们需要申请一张客户端证书。
未完,待续……