本文介紹了WildFly 11-使用證書發(fā)出HTTPS請求的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我有點不知道如何在WidlFly 11中使用證書。我在文檔中找到了很多術(shù)語,如JSSE、OpenSSL、Elytron、ApplicationRealm。
執(zhí)行代碼時出現(xiàn)問題
final URL url = new URL("https://someUrl");
HttpsURLConnection httpURLConnection = (HttpsURLConnection)url.openConnection();
此異常引發(fā)sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
那么,到底需要配置什么呢?我嘗試了Elytron Doccumentation中的”為應(yīng)用程序啟用單向SSL/TLS”一節(jié),但不起作用。
PS:我使用的是Java 9.01
PS2:我使用的是stand-full.xml
如果您需要更多信息,請告訴我
推薦答案
這與WildFly無關(guān)-您需要配置受Java URL連接信任的證書-您需要創(chuàng)建和配置信任庫:
創(chuàng)建包含服務(wù)器證書的密鑰庫(如果是自簽名證書),或者更好的是其CA的證書:
keytool -import -file myCA.cert -alias myCA -storepass mypassword -noprompt -keystore my.truststore
通過設(shè)置javax.net.ssl.trustStore
和javax.net.ssl.trustStorePassword
系統(tǒng)屬性開始使用創(chuàng)建的密鑰庫文件作為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文檔僅與服務(wù)器端相關(guān),但這是客戶端配置,當(dāng)前不由其處理。
這篇關(guān)于WildFly 11-使用證書發(fā)出HTTPS請求的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,