IIS客户端证书访问配置(转)-程序员宅基地

一、         测试环境配置

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

智能推荐

鸿蒙用于物联网,任正非:鸿蒙开发初衷是用于物联网-程序员宅基地

文章浏览阅读133次。近日,华为社区发布了关于华为创始人任正非在接受外媒采访的内容,其中任正非表示,开发设计鸿蒙的初衷是用于物联网,比如工业控制、无人驾驶……来支撑使用,我们现在首先使用在手表、在智能8K大屏、车联网上。7月9日,华为“心声社区”发布华为创始人任正非6月18日接受法国《观点》周刊的采访实录。在采访中,任正非谈到关于华为自研操作系统的相关信息。任正非称,鸿蒙操作系统是一个面向确定时延系统的操作系统,对诸如..._鸿蒙开发需要硬件物联网吗

java 父类对象赋值给子类_typehelper.fathertochild-程序员宅基地

文章浏览阅读5.3k次。方式一:private void fatherToChild(Object father, Object child) { if (!(child.getClass().getSuperclass() == father.getClass())) { try { throw new Exception(child + "不是" + father + "的子类");..._typehelper.fathertochild

获取客户端内网ip,亲测有效-程序员宅基地

文章浏览阅读6k次。var info = allinfo();document.write(info);var locator = new ActiveXObject("WbemScripting.SWbemLocator");var service = locator.ConnectServer(".");info = pcInfo();document.write(info);_获取客户端内网ip

关于用户在App上的行为和偏好_手机软件偏好行为分析算法-程序员宅基地

文章浏览阅读2.6k次。中国智能手机用户关于App的使用习惯行为和偏好在过去一年里发生了哪些变化?App推荐类应用的运营者角又怎么看呢?这里所说的App推荐类应用,主要指的是各大限免类应用、各大应用中心、应用分发市场等。以下内容来自于知乎,原作者为金山网络的马健和应用汇的汤海泉马健:没搞过安卓市场,所以只说说iOS这块。2011年基本上还没有什么大型市场,特别是iOS上,都是一些小团队和个人做的市_手机软件偏好行为分析算法

苏州大学计算机专业课872考研真题1999~2022含答案解析大纲专业课PPT 百度网盘分享 黄金典藏版_苏州大学考研真题百度教育-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏9次。苏州大学计算机专业课872考研真题1999~2022含答案解析大纲专业课PPT 百度网盘分享 黄金典藏版_苏州大学考研真题百度教育

机器学习特征选择方法_最优特征子集是什么-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏30次。文章目录前言特征选择过滤法Pearson系数卡方检验互信息和最大信息系数距离相关系数方差选择法包装法嵌入法总结前言最近在看吴恩达的深度学习机器学习课程。地址:deeplearningai。课程在机器学习特征工程的课程中提到特征选择。在机器学习项目生命周期里,特征工程占据很大的比重,特征工程关乎最终模型性能的好坏,正所谓“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。而特征选择是特征工程的一个重要问题,本文结合【机器学习】特征选择(Feature Selection)方法汇总一文,一_最优特征子集是什么

随便推点

鸿蒙手机系统会是什么样的,[财经]鸿蒙发布会主要内容2021新消息解读:OS手机操作系统是什么样的? - 南方财富网...-程序员宅基地

文章浏览阅读110次。2021 年 6 月 2 日,在备受瞩目的 HarmonyOS 2 及华为全场景新品发布会上,华为正式发布了数款出厂搭载鸿蒙 OS(HarmonyOS)的智能手机新品:Mate 40 系列、Mate X2 和 Nova 8 Pro 的新版本——同时,华为 P50 系列手机新品也在发布会上正式亮相。对于 P50 系列,余承东表示:这是一款伟大的产品,伟大的产品值得期待。除了上述智能手机新品,华为也在..._鸿蒙手机系统内容是什么样的

mybatis和Hibernate的区别_mybatis和hibernate的区别图-程序员宅基地

文章浏览阅读220次。1.什么是HibernateHibernate是关系型映射框架(ORM),程序员只要定义好实体到数据库的映射关系,即可通过Hibernate提供的方法完成持久层的操作,不需要对sql熟练掌握,Hibernate会根据存储逻辑,自动生成对应的sql,并调用jdbc接口加以执行2.什么是MybatisMybatis是持久层框架,侧重于实体和sql之间的映射关系..._mybatis和hibernate的区别图

pycharm安装库及安装失败解决办法_file 'c:\users\15394\pycharmprojects\pythonproject-程序员宅基地

文章浏览阅读9.8k次,点赞13次,收藏27次。pycharm安装包的步骤为稍等片刻,就安装好了,可以通过调用cmd(window+R,再输入cmd),输入python -m pip list即可查看安装的包。但是我在安装过程中出现了错误,无论是采用cmd安装还是pycharm安装库都不行,在网上查找之后,发现使用的是虚拟环境下的解释器,下面介绍如何将虚拟环境的解释器改成安装python真实路径的解释器。找到路径就可以了。..._file 'c:\users\15394\pycharmprojects\pythonproject\test.py' already exists

PHP文件操作入门_file_use_include_path-程序员宅基地

文章浏览阅读513次。文件读写1、读取文件file_get_contents():将文件中的内容读取到一个字符串中file_get_contents($filename,$use_include_path,$context,$offset,$maxlen);$filename:指定要读取的文件路径;其他参数为可选参数$use_include_path,若想在php.ini中配置的 include_path路..._file_use_include_path

如何利用SQLyog数据库管理工具生成各表的关系视图_sqlyog er图-程序员宅基地

文章浏览阅读3.8w次,点赞21次,收藏38次。 工具: 1. SQLyog-12.0.9-0.x64 2. Mysql5.7 mysql5.7直接去官网下载就可以了。SQLyog的破解版,在这个网址有http://download.csdn.net/download/whdxkcx/10027742。 过程: 1.打..._sqlyog er图

编程开发需知的24项_bestcssbuttongenerat-程序员宅基地

文章浏览阅读182次。1、element-ui一种好用的ui库 用户特别多,element遇到的问题基本都可以百度找到解决办法(要知道你遇到的问题别人也会遇到)2、vxe-table 一种强大的table组件库(真的很强大,这个是专门针对表格开发的库,功能很全也很强大,唯一不好的是用户不多,可能会遇到解决不了的bug,但我相信这个库一定会火)3、Vant - 轻量、可靠的移动端 Vue 组件库 (一般争对..._bestcssbuttongenerat