首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSE3003:无法验证证书的信任链

WSE3003:无法验证证书的信任链
EN

Stack Overflow用户
提问于 2009-10-02 11:33:08
回答 1查看 6.4K关注 0票数 1

我正在编写一个使用公共web服务的系统。我正在使用VS2008和经典的.NET Framework2.0WebServices技术来使用web服务。我的问题不是使用web服务,也不是调用它的操作。

问题是,当我从被签名的操作中得到响应时,生成的代理开始验证签名。那时我得到了WSE3003错误。我(认为我)已经将服务证书加载到LocalComputer/TrustedPeople证书存储中,当我查看它的证书路径时,我可以看到一切正常:

VeriSign第3类公共小学CA

产品名称:://CPS/ Incorp.by /CPS.责任有限公司(C)97.

          servcert.there.com

但我一直有以下例外:

Microsoft.Web.Services3.ResponseProcessingException:

WSE910:在处理响应消息过程中发生错误,您可以在内部异常中找到错误。还可以在response属性中找到响应消息。或者,如果这是测试证书,则可能希望将allowTestRoot配置部分设置为true。

下面的代码可能没有编译,我已经删除了一些敏感的内容,但是下面是我如何完成我的部分的想法:

代码语言:javascript
复制
// Construct the wse proxy
MyServiceWse wsClient = new MyServiceWse();

// Assign the credentials
UsernameToken userToken = new UsernameToken("user", "pass", PasswordOption.SendPlainText);
wsClient.SetClientCredential(userToken);
wsClient.RequestSoapContext.IdentityToken = userToken;

// Find the client and service certificates
X509Certificate2 clientCert = MyCertificateManager.FindCertificate(StoreLocation.LocalMachine, StoreName.TrustedPeople, "mycert.here.com");
X509Certificate2 serviceCert = MyCertificateManager.FindCertificate(StoreLocation.LocalMachine, StoreName.TrustedPeople, "servicecert.there.com");

// Add the policy to the proxy
Policy policy = new Policy();
MySecurityClientAssertion assertion = new MySecurityClientAssertion();
assertion.SetServiceCertificate(serviceCert);
assertion.SetClientCertificate(clientCert);
policy.Assertions.Add(assertion);
wsClient.SetPolicy(policy);

// Assign the service URL and call an operation
wsClient.Url = "https://services.there.com/TheirService.asmx";
TheirOperationResponse r = wsClient.CallTheirOperation();

我当然希望我的代码是错误的,因为我能够理解这比证书存储和信任链之类的东西要好得多。任何帮助都会很好。谢谢你的努力。

EN

回答 1

Stack Overflow用户

发布于 2009-10-02 11:42:44

如果问题是与链,那么所有其他证书也需要在证书商店。

因此,让我们从顶部开始;启动MMC并添加证书管理插件,并将其指向本地计算机帐户。

现在,在受信任的根权限中,检查"VeriSign第3类公共主CA“,并匹配您试图使用的证书中的根CA。(它应该在那里,那是标准的)。

接下来请查看以下网址: that ://CPS Incorp.by Ref。责任有限公司(C)97.在中间证书颁发机构的存储中。在我的机器上有两个,其中一个过期了。

如果两者都在,那么您需要仔细查看证书链。在浏览器中加载web服务,并查看从浏览器获得的证书错误。如果您继续在网站上,您将能够单击SSL图标,并工作方式上的链。单击挂锁并选择查看证书。然后选择“证书路径”选项卡。希望你能看到链接,突出显示问题证书(我现在找不到问题网站,所以我不记得它是什么样子)。选择最低的一个,并通过高亮显示并单击视图证书来查看错误是什么。你可能会发现这只是一个过期的证书之类的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1508998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档