如何做:设置客户端证书

原创 2004年06月22日 20:24:00

为了执行授权Web 服务经常需要能够对它们的调用方其它应用程序进行身份验证。客户端证书为 Web 服务提供了一种非常好的身份验证机制。如果您使用客户端证书您的应用程序也会得益于客户端应用程序和 Web 服务之间的安全通道创建使用安全套接字层 [SSL]。这样您就可以安全地在 Web 服务之间传送保密信息。SSL 确保消息的完整性和机密性。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

本“如何做”包括调用配置为需要客户端证书的 Web 服务的分步指导。

 

注意:本“如何做”中的信息也适用于由 IIS 承载的远程组件。

 

要求

以下各项介绍了推荐的硬件、软件、网络基础结构、技巧和知识以及您需要的服务包。

   Service Pack 2 Microsoft? Windows? 2000 Server 操作系统

   Microsoft Visual Studio? .NET 开发系统

   访问证书颁发机构 (CA) 以生成新的证书

   一个已安装了服务器证书的 Web 服务器

有关安装 Web 服务器证书的更多信息请参见本指南参考部分的如何做:在 Web 服务器上设置 SSL

   

“如何做”中的过程还要求您具有使用 Microsoft Visual C#? 开发工具进行 ASP.NET Web 开发的知识。

总结

本“如何做”包括如下过程

1.   创建简单的 Web 应用程序

2.   Web 应用程序配置为需要客户端证书

3.   需要并安装客户端证书

4.   验证客户端证书操作

 

1. 创建简单的 Web 应用程序

u 创建简单的 Web 应用程序

1.   启动 Visual Studio .NET创建一个名为 SecureApp 的新 C# ASP.NET Web 应用程序。

2.   从工具箱中将一个标签控件拖放到 WebForm1.aspx Web 窗体上,然后将其 ID 属性设置为 message

3.   再拖放一个标签至 WebForm1.aspx 窗体上,然后将其 ID 属性设置为 certData

 

4.   将下面的代码添加到 Page_Load 事件过程中。

 

string username;

username = User.Identity.Name;

message.Text = "Welcome " + username;

HttpClientCertificate cert = Request.ClientCertificate;

if (cert.IsPresent)

{

  certData.Text = "Client certificate retrieved";

}

else

{

  certData.Text = "No client certificate";

}

 

 5.   构建菜单中单击构建解决方案

 6.   启动 Internet Explorer 并导航至 http://localhost/SecureApp/WebForm1.aspx

页面应该显示“欢迎”消息(不显示用户名,因为用户尚未经过身份验证)和“没有客户端证书”。

7.   关闭 Internet Explorer

 

2. Web 应用程序配置为需要客户端证书

此过程使用 Internet 信息服务 (IIS) Web 应用程序的虚拟目录配置为需要证书。

此过程假设您在 Web 服务器上安装了有效的证书。有关安装 Web 服务器证书的详细信息请参见如何做:在 Web 服务器上设置 SSL

u Web 应用程序的虚拟目录配置为需要证书

1.   Web 服务主机上启动 IIS

2.   导航到 SecureApp 虚拟目录。

3.   右击 SecureApp然后单击属性

4.   单击目录安全性选项卡。

5.   单击安全通信下的编辑

如果无法使用编辑”,则可能没有安装 Web 服务器证书。

6.   选择要求安全通道 (SSL)复选框。

7.   选择要求客户端证书选项。

8.   单击确定”,然后再单击确定

9.   在“继承覆盖”对话框中,单击“全选”,然后单击“确定”关闭“SecureApp 属性”对话框。

这会将新的安全设置应用于虚拟根目录下的所有子目录。

10.   要确认 Web 站点已正确配置,启动 Internet Explorer 并(使用 HTTPS)浏览到 https://localhost/secureapp/webform1.aspx

11.   Internet Explorer 显示“客户身份验证”对话框,要求您选择一个客户端证书。因为您尚未安装客户端证书,所以单击“确定”,确认显示通知您页面需要客户端证书的错误页面。

12.   关闭 Internet Explorer

 

3. 需要并安装客户端证书

此过程安装客户端证书。您可以使用来自任何证书颁发机构的证书,也可以使用如后面几节所述的 Microsoft 证书服务来生成自己的证书。

此过程假设 Microsoft 证书服务是为待定申请配置的,这要求管理员专门颁发证书。它也可以配置为应证书申请自动颁发证书。

u 检查证书申请状态设置

1.   Microsoft 证书服务计算机上,从“管理工具”程序组中选择“证书颁发机构”。

2.   展开“证书颁发机构(本地)”,右击证书颁发机构并单击“属性”。

3.   单击策略模块选项卡然后单击配置

4.   检查默认操作。

以下过程假设“将证书申请状态设成待定”。选择“管理员必须专门颁发证书”。

 

u 申请客户端证书

1.   启动 Internet Explorer 并导航至 http://hostname/certsrv,其中 hostname 是安装 Microsoft 证书服务的计算机的名称。

2.   单击“申请证书”,然后单击下一步

3.   在“选择申请类型”页上,单击“用户证书”,然后单击“下一步”。

4.   单击“提交”完成申请。

5.   关闭 Internet Explorer

 

u 颁发客户端证书

1.   从“管理工具”程序组中启动“证书颁发机构”工具。

2.   展开您的证书颁发机构,然后选择“待定申请”文件夹。

3.   选择刚提交的证书申请,指向“操作”菜单上的“所有任务”,然后单击“颁发”。

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

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

6.   关闭证书的属性窗口。

7.   关闭证书颁发机构工具。

 

u 安装客户端证书

1.   要查看证书,启动 Windows 资源管理器,导航至在前一过程中保存的 .cer 文件,然后双击它。

2.   单击“安装证书”,然后在“证书导入向导”的首页单击“下一步”。

3.   选择“根据证书类型,自动选择证书存储区”,然后单击“下一步”。

4.   单击完成完成向导。关闭确认消息框,然后单击“确定”关闭证书。

 

4. 验证客户端证书操作

此过程验证您是否可以使用客户端证书访问 SecureApp 应用程序。

u 验证客户端证书操作

1.   启动 Internet Explorer 并导航至 https://localhost/secureapp/webform1.aspx

2.   确认 Web 页成功显示。

 

其他资源

有关更多信息请参见本指南的参考部分的如何做 Web 服务器上设置 SSL

HttpClient如何访问需要提交客户端证书的SSL服务

1.1 问题背景 自从***一期工程上了CA认证网关之后,在访问受CA认证网关保护的应用子系统时,必须提交客户端证书。那么问题来了,如果是人工(通过IE浏览器)访问子系统自然没问题,访问时会提示选择...
  • wanglha
  • wanglha
  • 2015年10月20日 09:05
  • 5352

如何建立客户端证书

Microsoft Corporation目标本模块用于: • 获取并安装客户端证书。 ...
  • enginetanmary
  • enginetanmary
  • 2007年09月25日 09:29
  • 1063

如何要求客户端出示“客户端证书”后,才能访问网站

一、设置服务器安全通信“要求客户端证书”。 此时如果客户端未安装相关证书,则出现“需要客户证书界面“ 二、申请客户证书(通过证书管理网站,添入个人相关信息:姓名、密钥用法、密钥大小...
  • shepherd02
  • shepherd02
  • 2011年10月22日 18:30
  • 1615

https原理:证书传递、验证和数据加密、解密过程解析

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。 HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL...
  • clh604
  • clh604
  • 2014年03月26日 15:10
  • 95348

keytool生成keystore、truststore、证书以及SSL单向认证在服务端tomcat和客户端的配置

参考链接 SSL单向认证 1 SSL单向认证概念   当客户端(服务请求方)向服务端(服务提供方)发起请求时,服务器端需要向客户端提供认证。服务端需要生成一个keystore和一个服务器密钥对儿(公钥...
  • shfqbluestone
  • shfqbluestone
  • 2014年03月14日 17:33
  • 10281

使用ssl加密的IIS客户端证书访问配置

一、         测试环境配置... 11、           win2003系统_1.. 11.1.         安装IIS以承载CA证书服务... 11.2.         安装证书服...
  • quboeric
  • quboeric
  • 2011年05月14日 20:15
  • 3904

android客户端认证服务端的两种方式

Your app shouldn't suffer SSL's problems http://thoughtcrime.org/blog/authenticity-is-broken-in-ssl...
  • bsmmaoshenbo
  • bsmmaoshenbo
  • 2015年06月11日 14:53
  • 763

https原理:证书传递、验证和数据加密、解密过程解析

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。 HTTPS简介 HTTPS其实是有两部分组成:HTTP + S...
  • u010852160
  • u010852160
  • 2017年03月07日 17:11
  • 1198

验证 HTTPS 请求的证书(五)

验证 HTTPS 请求的证书(五) 自 iOS9 发布之后,由于新特性 App Transport Security 的引入,在默认行为下是不能发送 HTTP 请求的。很多网站都在转用 HTTP...
  • apple7758991
  • apple7758991
  • 2017年06月24日 15:14
  • 196

Android MQTT客户端使用SSL/TLS连接MQTT代理服务器

摘要 MQTT作为android客户端的push消息推送协议。android客户端需要通过SSL/TLS连接mqtt代理服务器,实现消息的加密传输。实现这个流程需要提供两个方面的支持,一个是mqtt协...
  • zhangsheXIN_
  • zhangsheXIN_
  • 2014年12月08日 15:19
  • 2562
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何做:设置客户端证书
举报原因:
原因补充:

(最多只允许输入30个字)