Chinaunix首页 | 论坛 | 博客
  • 博客访问: 980468
  • 博文数量: 78
  • 博客积分: 1473
  • 博客等级: 上尉
  • 技术积分: 2124
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-23 12:50
文章分类

全部博文(78)

文章存档

2016年(6)

2015年(2)

2014年(13)

2013年(4)

2012年(53)

分类: 嵌入式

2012-06-24 15:19:55

 

当证书验证模式设置为“PeerTrust”时,服务端或者客户端会验证证书是否存在于TrustedPeople 证书存储区中。

修改配置文件采用“PeerTrust”验证模式如以下代码。

在服务端设置对客户端的验证模式设置为“PeerTrust”:

           <clientCertificate >

              <certificate findValue="XuanhunClient"

                            storeLocation="CurrentUser"

                            storeName="My"

                            x509FindType="FindBySubjectName"/>

     <authentication certificateValidationMode="PeerTrust" trustedStoreLocation="CurrentUser"  />

            clientCertificate>

在客户端设置对服务端验证模式设置为“PeerTrust”:

   <serviceCertificate >

    

                 x509FindType="FindBySubjectName"

                storeLocation="CurrentUser"

              storeName="My"

                findValue="XuanhunServer"

                />

<authentication certificateValidationMode="PeerTrust"  />

            serviceCertificate>

在运行程序之前,先来看看前面生成证书目前存放在哪里。启动mmc控制台,添加新管理单元,选择证书,然后添加当前用户和本地计算机两个节点,如图11-14所示。

图11-14               添加证书管理单元

添加管理单元之后,查看当前用户下各类证书,如图11-15所示。

图11-15        查看证书

在图11-15中可以看到,生成证书“XuanhunClient”和“XuanhunServer”在当前用户个人存储区中,不在受信任人存储区中。

运行服务端和客户端,在客户端报出异常,如图11-16所示。

图11-16        证书不在被信任人存储区中

从图11-16异常信息可以明显地看出,如果证书不在受信任人存储区中,采用“PeerTrust”验证模式时是无法通过验证。有没有办法将这两个证书放到受信任人证书存储区中呢?其实很简单,只需要在证书管理单元中将两个证书拖拽到受信任人存储区中即可,如图11-17所示。

图11-17        将证书添加到受信任人存储区

现在运行程序,是不是就可以通过验证了呢?还不行,不要忘记修改配置文件中storeName”属性为“TrustedPeople”。

修改客户端“storeName”属性:

 <clientCertificate

               findValue="XuanhunClient"

                storeLocation="CurrentUser"

                x509FindType="FindBySubjectName"

                storeName="TrustedPeople"/>

修改服务端“storeName”属性:

    <serviceCredentials >

            <serviceCertificate

               x509FindType="FindBySubjectName"

                storeLocation="CurrentUser"

                storeName="TrustedPeople"

                findValue="XuanhunServer"

             />

 </serviceCredentials>

运行测试程序,结果如图11-18所示。

图11-18        PeerTrust”验证模式运行结果

11-18 所示为客户端显示结果,说明客户端和服务端证书已经通过相互验证。

 ------------------------------注:本文部分内容改编自《.NET 安全揭秘》

阅读(1361) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~