X.509 安全 Web 服务的 Java 客户端

标签 java web-services security client x509certificate

我有使用 X.509 证书保护的远程 Web 服务。
我生成了 web 服务客户端的东西(使用 jax-ws)但需要配置是否用于证书的使用。
我应该如何进行?
我想我应该在本地受信任的 keystore 中注册证书,然后他们设置如下:

System.setProperty("javax.net.ssl.keyStore", keyStore);
System.setProperty("javax.net.ssl.keyStoreType", "JKS");
System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword);
System.setProperty("javax.net.ssl.trustStore", trustStore);
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword);

但不清楚应该提供哪些数据作为参数。
请帮忙。
谢谢。

最佳答案

keystore 属性定义了向服务器标识您的证书:
System.setProperty("javax.net.ssl.keyStore", keyStore);
这是一个带有 x509 证书的 java keystore 。您可以使用 tha java 程序 keytool 创建它。
System.setProperty("javax.net.ssl.trustStore", trustStore);
这是一个带有用于标识网站的证书的 Java keystore 。这仅由您的网络服务软件使用,以确保您确实在与正确的网站交谈。
System.setProperty("javax.net.ssl.keyStoreType", "JKS"); System.setProperty("javax.net.ssl.trustStoreType", "JKS");
这只是指定 javax.net.ssl.keyStore 和 javax.net.ssl.trustStore 的格式是 java keystore。
System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword); System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword);
这是在创建 java keystore 时用于加密它的密码。

关于X.509 安全 Web 服务的 Java 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8091607/

相关文章:

c# - UPS WSDL/C# 示例编译错误

web-services - 如何创建RESTful计算器?

javascript - 通过防止框架破坏来阻止网页泄露

php - 通过 HTTP 跨域安全地发送数据

java - 使用 JPA 对集合的集合进行分组和排序

java - 什么是 NullPointerException,我该如何解决?

java - 您应该默认使用应用程序服务器的 JPA 提供程序吗?

java - 使用 java UrlConnection 对 ntlm(或 kerberos)进行身份验证

java - 如何为 Web 服务创建 Java 客户端?

javascript - 如何保护从 Angular 2 到 Express Server 的 http 帖子