6
我基本上需要保护我对这个服务的请求。使用JKS和/或PFX证书从C#客户端调用Java Web服务
我已经提供了一个JAR
测试客户端和两个文件,trust.jks
和Client.pfx
,但我不知道如何使用它们:我明白X509Certificate2类是参与了一些办法。
命令行执行测试客户端如下:
java -Djavax.net.ssl.trustStore=trust.jks -Djavax.net.ssl.trustStorePassword=******** -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.keyStore=Client.pfx -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=******** -jar TestClient.jar https://myServiceurl
它的工作原理,这样我就可以看到两者的服务和服务本身应适当配置。
我的C#客户端(它是针对.NET 2.0)使用普通Web引用执行请求:
wsReferenceClient service = new wsReferenceClient();
//certificate code here ?
//maybe service.ClientCertificates.Add(<X509Certificate2 object built somehow>); ?
service.MyRequest(myParameters);
服务器的设置应适当。
我与X509Certificate2
方法里摸索,但我不能用的东西,有道理出来,所以答案为“你尝试过什么?”目前的问题是“我真的不知道该怎么尝试”。
任何帮助将非常感激。
AFAIK JKS商店是专有的Java解决方案。您必须使用keytool导出公钥(可能是整个链)并将其导入到PKCS等开放格式存储中。 – home 2012-04-13 09:43:41
正确,我宁愿单独拿走它的可信证书并使用它们。 pfx已经应该包含私钥和证书链。 – 2012-04-13 10:38:05
那么,如果我理解正确,我需要以某种方式让JKS文件可以被我的客户使用?想想我会多一点谷歌... – Alex 2012-04-13 11:55:23