IIS客户端证书访问配置(转)_weixin_30951389的博客-程序员秘密

一、         测试环境配置

1           win2003系统_1

1.1.         安装IIS以承载CA证书服务

1.2.         安装证书服务,CA的公用名称设置为TestCA

2           win2003系统_2

2.1.         安装IIS

3           win2003系统_3

二、         配置过程

1           win2003系统_2申请并配置IIS SSL的服务端证书

1.1.         生成证书申请文件

1.2.         提交证书申请

1.3.         颁发证书

1.4.         上安装证书

1.5.         web站点配置为要求 SSL 访问

1.6.         测试IE使用SSL浏览

2           win2003系统_3申请安装客户端证书ClientCert2003

3           win2003系统_2上设置客户证书映射

3.1.         Web服务器上导入客户端证书

3.2.         导入客户端证书的根证书

3.3.         设置IIS中网站的客户端证书映射

3.4.         Web网站读取客户端映射的windows账户

三、         测试

 

本文给出了如何配置IIS通过SSL安全通道进行访问的方法,并在此基础上详细讨论了IIS如何设置要求对客户端提供客户端证书进行身份验证。IISSSL服务器证书申请和安装,从而配置SSL安全访问通道。客户端证书的申请和安装,IIS端如何映射客户端证书到服务器上的windows账户等等。

 

一、 测试环境配置

准备三台机器,都是windows 2003操作系统,每台机器的作用,和其上需要安装的服务和配置如下:

1、 win2003系统_1

ip192.168.1.11

机器名:win2003base1

服务器作用:这个服务器是用来安装证书服务,作为一个CA提供证书服务。

1.1.   安装IIS以承载CA证书服务

1.2.   安装证书服务,CA的公用名称设置为TestCA

在安装证书服务过程中会生成一个证书服务的证书,一个自己颁给自己的证书作为这个CA的根证书:

clip_image001

在安装了证书服务后,会把这个TestCA证书保存证书存储区的多个位置:

本地计算机存储区中的“个人”、“受信任的根证书颁发机构”、“中级证书颁发机构”,其中在“中级证书颁发机构”下的“证书”和“证书吊销列表”中都有(为什么会出现在“证书吊销列表”中?)。

当前用户存储区的“个人”。

 

2、 win2003系统_2

ip192.168.1.12

机器名:win2003base2

服务器作用:这个服务器是用来作为web server,建立一个网站,设置为SSL安全通道访问,并需要客户端证书进行访问。

2.1.   安装IIS

默认网站作为测试客户端证书访问的web站点。

 

3、 win2003系统_3

ip192.168.1.13

机器名:win2003base3

机器作用:这个机器只是作为一个单纯的IE客户端,用来申请客户端证书并使用证书访问web server

 

 

二、 配置过程

1、 win2003系统_2申请并配置IIS SSL的服务端证书

1.1.   生成证书申请文件

IIS要访问的那个网站的属性中,“目录安全性”--“服务器证书”,选新建证书:

clip_image003

下一步:

clip_image005

下一步:

clip_image007

向导使用当前 Web 站点名称作为默认名称。它不在证书中使用,但作为友好名称以助于管理员识别。下一步:

clip_image009

单位和部门,这些信息将放在证书申请中,因此应确保它的正确性。CA 将验证这些信息并将其放在证书中。浏览您的 Web 站点的用户需要查看这些信息,以便决定他们是否接受证书。下一步:

clip_image011

公用名是证书最后的最重要信息之一。它是 Web 站点的 DNS 名称(即用户在浏览您的站点时键入的名称)。如果证书名称与站点名称不匹配,当用户浏览到您的站点时,将报告证书问题。

如果您的站点在 Web 上并且被命名为 www.contoso.com,这就是您应当指定的公用名。

如果您的站点是内部站点,并且用户是通过计算机名称浏览的,请输入计算机的 NetBIOS DNS 名称。

这里因为win2003系统_2服务器的机器名是win2003base2,所以共用名称设为win2003base2

下一步:

clip_image013

下一步:

clip_image015

会要求证书申请的文件名,这是您的证书申请的 Base 64 编码表示形式。申请中包含输入到向导中的信息,还包括您的公钥和用您的私钥签名的信息。

将此申请文件发送到 CA。然后 CA 会使用证书申请中的公钥信息验证用您的私钥签名的信息。CA 也验证申请中提供的信息。

 

当您将申请提交到 CA 后,CA 将在一个文件中发回证书。然后您应当重新启动 Web 服务器证书向导。

下一步:

clip_image017

 

完成生成申请过程。

1.2.   提交证书申请

证书申请现在可以发送到 CA 进行验证和处理。当您从 CA 收到证书响应以后,可以再次使用 IIS 证书向导,在 Web 服务器上继续安装证书。

 

使用“记事本”打开在前面的过程中生成的证书文件,将它的整个内容复制到剪贴板。

启动 Internet Explorer,导航到 http://192.168.1.11/certsrv,指向win2003系统_1的证书服务。

单击“申请一个证书”,然后单击“下一步”。

在“选择申请类型”页中,单击“高级申请”,然后单击“下一步”。

在“高级证书申请”页中,单击“使用 Base64 编码的 PKCS#10 文件提交证书申请”,然后单击“下一步”。

在“提交一个保存的申请”页中,单击“Base64 编码的证书申请(PKCS #10 #7)”文本框,按住 CTRL+V,粘贴先前复制到剪贴板上的证书申请。

单击“提交”。

1.3.   颁发证书

提交申请后,在win2003系统_1机器上证书颁发机构中批准颁发这个win2003base2证书。

确认该证书显示在“颁发的证书”文件夹中,然后双击查看它。

在“详细信息”选项卡中,单击“复制到文件”,将证书保存为 Base-64 编码的 X.509 证书。

关闭证书的属性窗口。

1.4.   上安装证书

win2003系统_2IISWeb 站点,然后单击“属性”,单击“目录安全性”选项卡。

单击“服务器证书”启动 Web 服务器证书向导。

clip_image019

 单击“处理挂起的申请并安装证书”,然后单击“下一步”。

clip_image021

 输入包含 CA 响应的文件的路径和文件名,然后单击“下一步”。

clip_image023

检查证书概述,单击“下一步”,然后单击“完成”。

现在,已在 Web 服务器上安装了证书。

win2003base2证书就会被安装到win2003系统_2机器上,证书会被安装到证书存储区的本地计算机存储区中的“个人”。

1.5.   web站点配置为要求 SSL 访问

IIS中查看这个Web 站点的属性。 单击“目录安全性”选项卡。 单击“安全通信”下的“编辑”。 单击“要求安全通道 (SSL)”。现在客户端必须使用 HTTPS 浏览到此虚拟目录。

clip_image025

 

1.6.   测试IE使用SSL浏览

IE通过SSL浏览此网站,如下:

clip_image027

 

 

2、 win2003系统_3申请安装客户端证书ClientCert2003

win2003系统_3机器上上打开win2003系统_1机器上证书服务的URLhttp://192.168.1.11/certsrv,提交一个 Web 浏览器证书”,姓名为“ClientCert2003”。

提交申请后,在win2003系统_1机器上证书颁发机构中批准颁发这个ClientCert2003证书。

win2003系统_3机器上“查看挂起的证书申请的状态”,会看到整个证书申请已被批准,并能够被安装。

点击安装证书,同样在安装过程中会提示是否安装ClientCert2003证书的根证书TestCA,选择安装。

安装好证书后,ClientCert2003证书就会被安装到win2003系统_3机器上,证书会被安装到证书存储区的当前用户存储区中的“个人”。

同时,ClientCert2003证书的根证书TestCA也被安装,被安装到了当前用户存储区中的 “受信任的根证书颁发机构”。

3、 win2003系统_2上设置客户证书映射

3.1.   Web服务器上导入客户端证书

IIS中要映射客户端的证书到windows账户,必须在IIS所在的服务器上用这个客户端的cer证书。

win2003系统_1机器上证书颁发机构中导出客户端申请后已经颁发的ClientCert2003证书,导出为ClientCert2003.cer

win2003系统_2机器上导入这个证书到当前用户存储区的个人目录下。

clip_image029

 

3.2.   导入客户端证书的根证书

Web服务端有了客户证书,还需要这个客户端证书的根证书,只有在服务器信任这个客户端证书的根证书时客户端证书才能正常访问web服务器。

在证书管理中双击ClientCert2003证书查看此证书:

clip_image031

clip_image033

可以看到,ClientCert2003的根证书TestCA在此服务器上不被信任,需要把TestCA证书安装到此服务器的受信任的根证书颁发机构存储里。

查看此根证书:

clip_image035

点击“安装证书”按钮,出现证书导入向导,选择“将所有的证书放入下列存储”,然后点击“浏览”按钮选择证书安装的存储区:

clip_image037

选择把证书保存到“受信任的根证书颁发机构”-“本地计算机”。

TestCA证书导入成功,到证书管理中查看,发现TestCA证书其实被安装到两个地方,分别是:

证书当前用户存储区的“受信任的根证书颁发机构”

证书本地计算机存储区的“受信任的根证书颁发机构”

3.3.   设置IIS中网站的客户端证书映射

win2003系统_2机器上IIS中,查看web网站的属性,导航到“目录安全性”,首先把所有的身份验证方法都清除:

clip_image039

然后在安全通讯区域内,点击“编辑”按钮:

clip_image041

 

设置“要求客户端证书”,并选择“启用客户端证书映射”,最后点击“编辑”添加ClientCert2003客户端证书映射到的本服务器上的windows账户:

clip_image043

由于是测试,这里把ClientCert2003客户端证书映射为administrator

 

3.4.   Web网站读取客户端映射的windows账户

在测试网站中设计一个test.aspx页面,用来读取当前用户身份并显示出来,简单的下面一条语句:

当前证书映射的用户是:<% =System.Threading.Thread.CurrentPrincipal.Identity.Name %>

 

三、 测试

win2003系统_3是测试客户端,已经安装了客户端证书ClientCert2003,在win2003系统_3IE中输入test.aspxURL,首先弹出选择证书的对话框:

clip_image045

 

其中ClientCert2003_3证书是win2003系统_3在证书服务器上另外又申请了一个web浏览器证书,跟ClientCert2003是同一个根证书,当浏览器中存在跟服务端相匹配的多个证书时,浏览器会弹出上面的对话框让用户选择使用哪个证书。

如果浏览器中只有一个证书跟服务器能匹配,则浏览器不弹出选择对话框,直接把匹配的证书发送到服务端。如果把ClientCert2003_3证书从win2003系统_3机器上删除,访问test.aspx将不会再出现上面的对话框。

如果浏览器中没有证书跟服务器匹配,浏览器就会显示需要提供SSL的客户端证书。

 

选择了ClientCert2003证书,点击“确定”按钮:

clip_image047

 

服务端允许访问,并且显示了映射到的用户就是WIN2003BASE2"Administrator

 

Tag标签: IIS, SSL, 客户端证书

转载于:https://www.cnblogs.com/cuihongyu3503319/archive/2008/09/19/1294371.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30951389/article/details/96383798

智能推荐

AAPT: error: attribute android:requestLegacyExternalStorage not found_慢行的骑兵的博客-程序员秘密

报错(如下):xxx/AndroidManifest.xml:30:5-482:19: AAPT: error: attribute android:requestLegacyExternalStorage not found.处理方案:You need to update your Android SDK build tools to 29-您需要将Android SDK构建工具更新到29备注:是否还有其它解决方案,暂时还不清楚。暂时做一个笔记,后续有精力再探索产生该问题的原因。...

8583:全面掌握ISO8583报文协议zz_dibi1233的博客-程序员秘密

刘永胜 2005年于广州原文:http://blog.csdn.net/lysheng/archive/2005/07/04/412724.aspx 我刚进入金融行业时,就知道了IS08583报文协议,我想可能我还没进入这个行业都已经听过了,可知ISO8583的影响力有多大了。最初刚接触它时,确实对其中的一些细节概念不是很清晰,对有些地方比较迷惑。鉴于此,我想...

PHP html转word_weixin_34332905的博客-程序员秘密

今天收到需求要导出APP里面的所有文章。。。然后就是PHP程序员的标准动作Google 当然我是百度 主要是用了破解版的软件太多 翻过去就会被检测出来。。。查了一大堆但是可用的并不多 搜到的方法有二:  1.直接把html代码写入word 以二进制的方式  2.通过mnt这个介质 生成word一开始我觉得图片 导不了 只能导文字 然后灵光一闪...

本地仓库及常用命令_白羊无名小猪的博客-程序员秘密_本地仓库

目录创建本地仓库示例。 Git常用命令。1.创建本地仓库示例在桌面上新建一个文件夹重命名为MyTest&gt;&gt;进入文件夹后鼠标右键打开Git Bash Here&gt;&gt;输入git init回车。此时,出现.git文件夹就说明MyTest文件夹初始化成了一个空的本地仓库(有可能.git文件夹是隐藏的,在我的电脑&gt;&gt;查看&gt;&gt;隐藏的项目)。...

随便推点

TensorFlow 读取本地数据集压缩包gz,并转换为numpy矩阵【修改官方源码而成】_BrianOne的博客-程序员秘密

本教程以读取Fashion-MNIST为例1 下载Fashion-MNIST数据集gz格式压缩包fashion-mnist共下载四个文件本人将所有文件保存到此文档路径中:'/home/brian/Documents/tensorflow-gpu/tensorflow-learning/data/fashion/'2 在python3环境中通过如下读入数据,并转换为numpy...

Delphi编程代码规范_普通网友的博客-程序员秘密

1. 一般的源代码格式规则 21.1 缩进 21.2 空格 21.3 边距 21.4 颜色及文字属性 21.5 begin···end 22. OBJECT PASCAL 32.1 括号 32.2 保留字和关键字 32.3 过程和函数(例程) 32.4 变量 42.5 常量(const) 52.6 资源串(resourcestring) 52.7 类型 52.8 构造类型 62.9 语句 62.1

爱上 Mybatis源码 (2019-08-11)_水的精神的博客-程序员秘密

第一次学习源码,自己很难吃透源码,也做不到直接撸源码,一句一句的解析。先学习一下别人的文章,吃透源码的流程,日后有能力了再逐句撸。 源码的乐趣就在于首先能明白为什么我在用框架的时候要这样用,以及明白整个流程以后,帮助我们排错,避免问题。# #总览Mybatis源码结构https://blog.csdn.net/u013510838/article/details/79...

Qt官方开发环境生成的exe发布方式--使用windeployqt_F_hawk189_新浪博客_F_hawk189的博客-程序员秘密

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。以官方 Qt 5.4.0+MinGW 开发环境为例,从开始菜单--》Qt 5.4.0--》5.4--》MinGW 4.9 (32-bit)--》Q...

20150303--从SQL中获取数据的三级联动_weixin_30265171的博客-程序员秘密

省市地区的三级联动,每变更一次所选地都需要提交,但是又不需要把整个页面提交,所以我们需要使用控件:UdataPanel。工具--AJAX扩展 还有ScriptManager,并要将其放在页面的最顶端。 DropDownList则需要放在UpdatePanel中: HTML源: &lt;body&gt; &lt;form id="form1" runat="serve...

IOS 专题集合_程序小痴的博客-程序员秘密

第一期:【一周精品源码】各种动画的集合demo[img]file:///C:\Users\zhangjy\AppData\Local\Temp\[email protected][GWU0353$FOVS.png[/img]http://www.code4app.com/forum.php?mod=viewthread&amp;tid=8006&amp;extra=page%3D1%26filter%3Ds...

推荐文章

热门文章

相关标签