【导读】:如何不使用makecert工具而使用windows 的证书服务来进行WCF安全,使用,进行,安全,服务,工具,如何,证书,CA,客户端,选择
如题;小弟尝试了N次都不成功,版主能不能做个教程啊?最好是HOST宿主的
|||
这个安装有一些限制,但是Windows证书服务,也是管理证书的一个组件。
你是怎么开发的?
我没做过测试。但是差别应该就在颁发证书的地方把。
证书服务。在 Windows Server2003, Standard Edition、Windows Server2003, Enterprise Edition 和 Windows Server2003, Datacenter Edition 上,证书服务是用来创建和管理证书颁发机构 (CA) 的组件。CA 负责建立和确定证件持有者的身份。如果证书不再有效,CA 会吊销证书,并发布由证书验证者使用的证书吊销列表 (CRL)。最简单的 PKI 设计只有一个根 CA。然而实际上,部署 PKI 的大多数单位会使用多个 CA,这些 CA 被组织成证书层次结构。
http://technet.microsoft.com/zh-cn/library/cc776679(WS.10).aspx
这里有一个安装的详细文章
http://hi.baidu.com/w32508/blog/item/45682012583f9355f819b82d.html
1安装windows server 2003 证书服务(CA) 企业级证书服务
首先要安装IIS ,这样才可以提供证书在线申请。
添加删除程序-安装WINDOWS 组建-证书服务
弹出警告信息“计算机名和域成员身份都不能更改”,选择“是”
证书类型有四种,自己可以分别试一下,选择"企业根CA" ,或者选择"独立根CA",这里选择的是“独立根CA”。
|||传输安全模式之Certificate身份验证:Transport_Certificate_WSHttpBinding ;现在服务端没问题,客户端可以添加服务引用,客户端老提示找不到证书|||
独立根CA,服务端证书申请的时候选择服务器验证证书,只存放在LocalMachine,客户段证书申请的时候选择客户端身份验证,存放在CurrentUser,CA根证书在LocalMachine和CurrentUser的受信任的颁发机构都有,错误提示:"未提供客户端证书。请在 ClientCredential 中指定一个客户端证书。"
客户端配置文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="NewBehavior">
<clientCredentials>
<clientCertificate findValue="ff3939ce3ed78a34e2f3c770d3039155138d854d"
x509FindType="FindByThumbprint" storeLocation="CurrentUser"/>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IERPService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"enabled="false" />
<security mode="Transport">
<transport clientCredentialType="Certificate" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"
establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://192.168.1.16:9003/ERPService" binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IERPService" contract="ERPServiceReference.IERPService"
name="WSHttpBinding_IERPService" />
</client>
</system.serviceModel>
</configuration>