我有点迷失在WidlFly 11中如何使用证书。我重新编写了文档,发现了许多术语,如JSSE,OpenSSL,Elytron,ApplicationRealm。 执行代码
时会出现问题final URL url = new URL("https://someUrl");
HttpsURLConnection httpURLConnection = (HttpsURLConnection)url.openConnection();
抛出此异常sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
那么,究竟需要配置什么?我在Elytron Doccumentation中尝试了“为应用程序启用单向SSL / TLS”部分,但没有用。
ps:我正在使用java 9.01 ps2:我正在使用standalone-full.xml
如果您需要更多信息,请告诉我
答案 0 :(得分:2)
这与WildFly无关 - 您需要配置受Java URL连接信任的证书 - 您需要创建和配置信任库:
创建包含服务器证书的密钥库(如果是自签名证书)或更好的CA证书:
keytool -import -file myCA.cert -alias myCA -storepass mypassword -noprompt -keystore my.truststore
通过设置javax.net.ssl.trustStore
和javax.net.ssl.trustStorePassword
系统属性,开始将已创建的密钥库文件用作WildFly中的信任库:
bin/jboss-cli.sh -c
/system-property=javax.net.ssl.trustStore:add(value="/path/to/my.truststore")
/system-property=javax.net.ssl.trustStorePassword:add(value="mypassword")
您提到的Elytron文档仅与服务器端相关 - 但这是客户端配置,目前尚未由它处理。
答案 1 :(得分:1)
证书不受信任,iirc在WildFly 11中有自签名证书,因此您需要信任它或安装真实证书。 Accept server's self-signed ssl certificate in Java client