使用 JKS 和/或 PFX 证书从 C# 客户端调用 Java Web 服务

本文关键字:客户端 调用 Java 服务 Web 证书 JKS PFX 使用 | 更新日期: 2023-09-27 18:30:55

我基本上需要保护我对这项服务的请求。

我得到了一个JAR测试客户端和两个文件,trust.jksClient.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方法,但我无法拿出有意义的东西,所以目前"你尝试过什么?"问题的答案是"我真的不知道首先要尝试什么"。

任何帮助将不胜感激。

使用 JKS 和/或 PFX 证书从 C# 客户端调用 Java Web 服务

事实证明,我不需要对JKS文件执行任何操作。

wsReferenceClient service = new wsReferenceClient();
X509Certificate2 cert = new X509Certificate2();
cert.Import("Client.pfx", "<the password>", DefaultKeySet);
service.ClientCertificates.Add(cert);
service.MyRequest(myParameters);

这允许我的HTTPS请求成功通过。