WCF NetTcpBinding Transport安全模式(7) ClientCredentialType证书验证模式---- ChainTrust验证模式

WCF NetTcpBinding Transport安全模式(7)    ClientCredentialType证书验证模式----ChainTrust验证模式

ChainTrust验证模式使用证书链来验证 X.509证书是否有效以及是否由受信任颁发者所颁发。它指定每个证书都必须存在于某个证书层次结构中,而该层次结构以位于证书链顶端根证书颁发机构结束。它将验证 X.509证书是否由受信任证书颁发机构颁发。通过搜索证书存储区并确定是否已将该证书颁发机构证书指定为受信任证书,可以做到这一点。为了使 WCF能够做出此判断,必须将证书颁发机构证书链安装在正确证书存储区中。

因为 Windows附带一组默认用于受信任证书颁发机构证书链,所以可能不必为所有证书颁发机构安装证书链。

扩展阅读       X.509证书链说明

crt上有证书持有人信息、持有人公钥、签署者签名。当安装了一个证书后,就信任了这份证书。证书上会说明用途,例如服务器认证、客户端认证,或者签署其他证书。当系统收到一份新证书时候,证书会说明是由谁签署。如果这个签署者确实可以签署其他证书,并且收到证书上签名和签署者公钥可以对上时候,系统就自动信任新证书。
  在系统开始时候,会自动安装信任一些证书机构,这些被称为根证书机构(CA)。根证书机构会为其他公司颁发证书,用于各种用途。当然,被签署证书也可能是一份可签署证书,这样就要检查对方资质。这样逐层签署,就会形成证书链

设置验证模式为“ChainTrust配置如以下代码所示。

在服务端设置验证客户端凭据模式为“ChainTrust”:

           <clientCertificate >

              <certificate findValue="XuanhunClient"

                            storeLocation="CurrentUser"

                            storeName="My"

                            x509FindType="FindBySubjectName"/>

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

            </clientCertificate>

在客户端设置验证验证服务端凭据模式为“ChainTrust”:

   <serviceCertificate >

     <defaultCertificate 

                 x509FindType="FindBySubjectName"

                storeLocation="CurrentUser"

              storeName="TrustedPeople"

                findValue="XuanhunServer"

                />

<authentication certificateValidationMode="ChainTrust"  />

            </serviceCertificate>

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

 

posted @ 2012-06-24 15:27  玄魂  阅读(865)  评论(0编辑  收藏  举报