把我所了解的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.基本设置
请看下图的安全设置及说明
上图中只选集成Windows身份验证:
当输入IIS Server的用户名密码以后就可以访问这个网页了!
2.通过IP设置来设置权限
请看下图:
上图中如果设置了禁止访问后会出现如下页面
3.通过证书来设置
这个很复杂它包括了IIS中的传输安全 ,下面从证书开始一步步得讲解
因为要用到数字证书,所以要一台证书服务器(这里用的和IIS同台服务器 )
a.安装认证服务器
然后下一步下一步直到完成 , 安装好后就可以在管理工具里用证书颁发机构
另外安装好后在IIS默认站点下面有一个证书申请的虚拟目录 ,如下图
b.由IIS准备一个证书申请(其实生成的是一个字符串)
右击要申请服务器证的网站 –> 属性 –> 目录安全->服务器证书->下一步就出现下面的图 先新新建证书 按下一步
选"现在准备证书请求,但稍后发送" 按下一步 ,出现如下页面
按下一步出现输入单位部门的页,输入您的单位和部门,按下一步(下面这一步要注意设置)
按下一步输入省市区什么的后 ,按下一步
按下一步下一步直到完成
c.通过刚才的文件里的字符串(不能多一个或少一个字符,包括空格)申请一个证书(有两种方法)
法1:通过CA 的下图的显示来提交一个新的申请,然后选择刚才的IIS上生成的文件(c:\certreg.txt) ,按打开即可
这时在挂起的证书下面就有一个证书
法2:通过IIS默认站点下的证书虚拟路径来
点申请一个证书后进入下一个页面,再点选"高级证书申请" 进行下面那个页面
选择刚才IIS生成的文件,全选里面的内容,然后全部贴到下面页面的红色框中
按提交后就会在CA(证书机构)的挂起的证书里有一个证书
D.接下来就是颁发证书:
选择刚才申请的在CA里挂起的证书,右键->所有任务->颁布
E.把已颁发的证书导出,给IIS用
在CA里的"颁发的证书"里,打开刚才颁发的证书 按下图导出
F.安装IIS服务器证书
再回到IIS 的服务器证书那里,点击进去,选"处理挂的请求并安装证书" ->先刚才导出的证书->指定SSL端口(默认443) ->下一步下一步直到完成
G.设置让网站用SSL安全传输
回到IIS的"目录安全性页面"->在"安全通信"里->编辑 出现如下图
只要如上图的设置后,就可以用SSL安全传输了,(这里可以配合"集成windows用户"做访问安全,这里讲一个新的, 用客户端证书映射用户来做访问安全)
按上面的设置 ,虽然可以用访问了,但会出现下图的效果,说明没有客户端证书(要允许匿名访问才可以)
讲到这里就算大概讲完了IIS 的SSL 下面再讲一下配合客户端证书来做安全访问
配合客户端证书来做安全访问
a.早请客户端证书
在客户机(本机win7)去访问CA服务器(通过IIS下的CA虚拟目录)
因为在做测试过程中不知道什么原因WIN7里Activex下不下来,所以把客户端改在VM2003里,按上面的步骤后,打开IE选项->内容->证书就新增加了一个客户端证书
把这个证书导出(C:\Client.cer)
当然也可以在CA里面把客户申请的证书导出
b.IIS里做用户和证书的映射(如果只通过证书来设置访问安全的话要去选匿名访问)
到刚才SSL的那个画面
按上面的顺序配置好后一路按确定确定,直到完成
现在再用https访问时先了了证书就会映射对相应的IIS服务器相应用户(就相当于集成windows验证),请看下图
按确定后,即可访问页面了!
到此讲了很多了! 图太多了! 为了能详细说明问题,没办法(通过这些操作,你应该可以想像得IIS 里的SSL 是乍么个工作原理了吧?)