我有使用 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/