当前位置: 首页 > 面试题库 >

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

钱震博
2023-03-14
问题内容

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

已经为我提供了一个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方法,但是我无法给出有意义的东西,所以答案是“您尝试了什么?” 目前的问题是“我真的不知道该先尝试什么”。

任何帮助将非常感激。


问题答案:

原来我不需要对JKS文件做任何事情。

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

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



 类似资料:
  • 我正在努力做一些基本的事情,但我的头脑还没有完全清醒过来。我有一个spring boot应用程序,它应该公开一个rest url。 我是这样做的: 正如您所见,它使用的是另一个服务,我正试图用一个外部客户机实现该服务: 界面看起来像: 当MdmhClient在调用: 我知道要解决这个问题,我需要将证书导入jre。我正在运行Intellij IDE,并将项目的jdk路径设置为: 我还通过firefo

  • 我需要一个安装的帮助。tomcat 8上的pfx证书。 我已经安装了一个。通过创建jks,在jvm上获得pfx证书。我已经在cacert中添加了一个证书 keytool-import-alias 192.168.56.100-keystore“C:\Program Files\Java\jdk1.8.0\u 91\jre\lib\security\cacerts”-trustcacerts-C:\

  • 我正在尝试使用一个Web服务,该服务要求开发人员作为参数的一部分传递签名证书。该服务在测试环境中运行良好,但是对于生产环境,除了签名证书外,还需要根证书才能成功访问该服务。这已经在《邮递员》中进行了测试,并取得了成功的结果。 当使用RestSharp库在C#代码中实现时,我得到如下所示的响应。 查询客户端响应日志:{“statusCode”:0,“statusDescription”:null,“

  • 使用用户证书验证 SSH (服务端) 在以安全为前提下要保障可靠性、可控性和一致性是非常复杂的。我们可以利用 SSH 又或者说 OpenSSH 来替代所依赖的中央身份验证(比如 LDAP 或者 Kerberos) 除了 通过 PIV 和 PKCS#11 验证 SSH 之外,还可以增加远程 SSH 验证的安全性。Facebook 和 Yahoo 已经更换使用 SSH 用户证书来避免中心认证系统宕机。

  • websocket客户端(使用Autobahn/Python和Twisted)需要连接到websocket服务器:客户端需要向服务器提供其客户端证书,客户端需要检查服务器的证书。例如,这些证书是在Kubernetes minikube安装过程中创建的。特别地: 服务器证书(据我所知为X509格式) 客户端证书~/。minikube/客户。按键 我已经检查过,我可以成功地使用这些证书密钥使用发出库伯

  • 验证 SSH 服务器证书(客户端) 和 SSH 用户证书 类似,使用客户端机构认证来验证主机。需要一个 SSH 服务器数字证书认证机构签发服务器证书,客户端只需要保存 CA 的公钥。 使用一台处于气隙系统下的计算机来生成服务器数字证书认证机构的根证书: ❯ ssh-keygen -C "SSH Server Certificate Authority" -f sshserver.root.ca 使