我正在实现一个使用Web服务的VB.NET桌面应用程序。
用Java实现的Web服务,我目前在我的localhost上使用Tomcat来托管Web服务。
Web服务需要与客户端进行安全通信,因此我遵循了如何使用Java的keytool.exe创建两个.jks密钥库(一个用于客户端,一个用于服务器)然后创建两个.cer的说明。证书(一个用于客户端,一个用于服务器)
我已将密钥库和证书生成放置到Web服务所期望的目录中(根据说明)
我已将证书安装到TrustedPeople中,并试图通过设置ClientCredentials.ClientCertificates属性来使用证书:
myServiceProxy.ClientCredentials.ClientCertificate.SetCertificate(storeLocation.CurrentUser, StoreName.TrustedPeople, X509FindType.FindByIssuerName, "name")
当我尝试调用任何方法时,我不断收到以下错误消息:
发现处理< wsse:Security>的错误头的
我的问题是我不知道如何在使用Web服务的VB.NET客户端应用程序中使用它。我可能完全错了。非常感谢有关该主题的任何指导。
谢谢,
-Frinny
答案 0 :(得分:0)
虽然我没有编写VB 10年,但这应该让你开始:http://www.example-code.com/vbdotnet/ssl_client_certificate.asp
特别是这看起来它正在加载包含证书的文件: certStore.LoadPfxFile( “chilkat_secret.pfx”, “秘密”)
这将提取证书并将其用于连接:
Dim cert As Chilkat.Cert
cert = certStore.FindCertBySubjectCN("Chilkat Software, Inc.")
If (cert Is Nothing ) Then
MsgBox(certStore.LastErrorText)
Exit Sub
End If
socket.SetSslClientCert(cert)
答案 1 :(得分:0)
当我不得不使用证书和WS时,我也遇到了很多问题。 Use the certificates MMC并验证:
X509FindType.FindByIssuerName, "name"
查找证书,打开证书,确保发行人名称匹配(我猜不是因为它似乎是复制和粘贴示例)。如果所有这些都失败了,请尝试尝试使用证书位置(我依旧记得能够使用来自一个位置而不是另一个位置的证书的一些问题),以及用于搜索证书的属性。< / p>
另外,因为您询问了有关证书的证书。检查是否存在内部异常并查看 - 这可能是另一个问题。