证书问题403.7

时间:2011-03-22 08:33:54

标签: web-services .net-3.5 x509certificate windows-7-x64 client-certificates

所以,我有以下系统:有一个客户端应用程序,它按如下方式请求服务:

blar.ServiceSecurity wsSecurity = new blar.ServiceSecurity();
wsSecurity.Url = this.tURL + "Security.asmx";
CookieContainer cc = new CookieContainer();
wsSecurity.CookieContainer = cc;
wsSecurity.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));

blar.LoginResult lr = wsSecurity.Login(login, password);

然后,this.tURL + "Security.asmx" Login方法的Web服务必须从以下位置获取ClientCertificate(certPath):

Context.Request.ClientCertificate.Certificate;

并用它做点什么。

有两个问题:
如果IIS的配置显示为Require client certificates,则在调用登录功能时出现 403.7 错误;
如果IIS的配置显示Accept client certificates,我得 CryptographicException “m_safeCertContext是一个无效的句柄”;

,这些问题只有在客户端使用Windows 7 x64,在Windows XP或Windows Server 2003上启动时才会发生,它确实很好。

ca安装在两台机器上,所有测试用例中的配置似乎完全相同,
所以我的问题是'到底是怎么回事?'

1 个答案:

答案 0 :(得分:2)

我没有看到您的代码或配置出现任何问题,因此您可能会发现这些工具有助于您自己解决问题:

  1. SSL Diagnostics for IIS(或IIS 7,请参阅this
  2. .NET Network Tracing
  3. Fiddler HTTP(S) proxy debugger(如何decrypt SSL
  4. SSL tracing