sen

导航

学习笔记之 IIS 安全 / 数字证书 / SSL 原理

Posted on 2009-11-13 20:33  sen  阅读(1515)  评论(2编辑  收藏  举报

把我所了解的IIS安全写下来希望对大家有帮助,如果有补充的我非常感谢

IIS安全可分为传输安全和访问安全

(这里有点东西要写在前面:很多网上文章把SSL跟各类技术如web Service搞一起讲,其它SSL跟那些技术一点关系都没有,它只是IIS的东西 ,请初学者注意)

(首先说明一下下面操作的环境:

Client: 系统:本机win7, IP : 192.168.85.1

请注意下两个要用到服务器系统:因为只有在服务器系统中IIS 才能新加网站,非服务器系统中只能新加虚拟目录.  另外只有服务器系统中有CA (证书机构)

IIS Server:    VM里的windows2003 , IP : 192.168.85.128

CA Server:     VM里的windows2003 , IP : 192.168.85.128

)

访问安全(传输安全在第三点中讲到,即SSL):

1.基本设置

请看下图的安全设置及说明

image

上图中只选集成Windows身份验证:

image

当输入IIS Server的用户名密码以后就可以访问这个网页了!

2.通过IP设置来设置权限

请看下图:

image

上图中如果设置了禁止访问后会出现如下页面

image

3.通过证书来设置

这个很复杂它包括了IIS中的传输安全 ,下面从证书开始一步步得讲解

因为要用到数字证书,所以要一台证书服务器(这里用的和IIS同台服务器 )

a.安装认证服务器

image

image

image

然后下一步下一步直到完成 , 安装好后就可以在管理工具里用证书颁发机构

另外安装好后在IIS默认站点下面有一个证书申请的虚拟目录 ,如下图

image

b.由IIS准备一个证书申请(其实生成的是一个字符串)

右击要申请服务器证的网站 –> 属性 –> 目录安全->服务器证书->下一步就出现下面的图 先新新建证书 按下一步

image

选"现在准备证书请求,但稍后发送" 按下一步  ,出现如下页面

image

按下一步出现输入单位部门的页,输入您的单位和部门,按下一步(下面这一步要注意设置)

image

按下一步输入省市区什么的后 ,按下一步

image

按下一步下一步直到完成

c.通过刚才的文件里的字符串(不能多一个或少一个字符,包括空格)申请一个证书(有两种方法)

法1:通过CA 的下图的显示来提交一个新的申请,然后选择刚才的IIS上生成的文件(c:\certreg.txt) ,按打开即可

这时在挂起的证书下面就有一个证书

image

法2:通过IIS默认站点下的证书虚拟路径来

image

点申请一个证书后进入下一个页面,再点选"高级证书申请"  进行下面那个页面

image 点选红框那个选项进入下一个页面

选择刚才IIS生成的文件,全选里面的内容,然后全部贴到下面页面的红色框中

image

按提交后就会在CA(证书机构)的挂起的证书里有一个证书

D.接下来就是颁发证书:

选择刚才申请的在CA里挂起的证书,右键->所有任务->颁布

E.把已颁发的证书导出,给IIS用

在CA里的"颁发的证书"里,打开刚才颁发的证书 按下图导出

image

 

image

F.安装IIS服务器证书

再回到IIS 的服务器证书那里,点击进去,选"处理挂的请求并安装证书" ->先刚才导出的证书->指定SSL端口(默认443) ->下一步下一步直到完成

G.设置让网站用SSL安全传输

回到IIS的"目录安全性页面"->在"安全通信"里->编辑 出现如下图

image

只要如上图的设置后,就可以用SSL安全传输了,(这里可以配合"集成windows用户"做访问安全,这里讲一个新的, 用客户端证书映射用户来做访问安全)

按上面的设置 ,虽然可以用访问了,但会出现下图的效果,说明没有客户端证书(要允许匿名访问才可以)

image

讲到这里就算大概讲完了IIS 的SSL 下面再讲一下配合客户端证书来做安全访问

配合客户端证书来做安全访问

a.早请客户端证书

在客户机(本机win7)去访问CA服务器(通过IIS下的CA虚拟目录)

image

因为在做测试过程中不知道什么原因WIN7里Activex下不下来,所以把客户端改在VM2003里,按上面的步骤后,打开IE选项->内容->证书就新增加了一个客户端证书

把这个证书导出(C:\Client.cer)

当然也可以在CA里面把客户申请的证书导出

image

b.IIS里做用户和证书的映射(如果只通过证书来设置访问安全的话要去选匿名访问)

到刚才SSL的那个画面

 

image

按上面的顺序配置好后一路按确定确定,直到完成

现在再用https访问时先了了证书就会映射对相应的IIS服务器相应用户(就相当于集成windows验证),请看下图

image

按确定后,即可访问页面了!

 

到此讲了很多了! 图太多了!  为了能详细说明问题,没办法(通过这些操作,你应该可以想像得IIS 里的SSL 是乍么个工作原理了吧?)