【发布时间】:2012-04-25 16:05:06
【问题描述】:
我基本上需要保护我对该服务的请求。
我得到了一个 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 等开放格式存储中。
-
正确,尽管我宁愿单独从中获取受信任的证书并使用它们。 pfx 应该已经包含私钥和证书链。
-
那么,如果我理解正确的话,我需要以某种方式让我的客户可以使用 JKS 文件吗?想我会再谷歌一下......
标签: c# java ssl request certificate