gpt4 book ai didi

JavaFX WebView 无法使用不受信任的 SSL 证书工作

转载 作者:搜寻专家 更新时间:2023-11-01 02:45:45 25 4
gpt4 key购买 nike

我正在使用 JavaFX 开发一个简单的嵌入式浏览器:

final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();

当我使用 webEngine 加载任何 http 网站时,它工作正常:

webEngine.load("http://google.es");

尽管如此,如果我尝试使用不受信任的证书(我自己的 ssl 证书)加载网站,webEngine 将无法正常工作,并且我会在浏览器中看到白屏。

有什么方法可以(自动)信任我的 ssl 证书吗?

最佳答案

终于解决了我的问题。您应该在加载网站之前添加此代码:

// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};

// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (GeneralSecurityException e) {
}
// Now you can access an https URL without having the certificate in the truststore
try {
URL url = new URL("https://hostname/index.html");
} catch (MalformedURLException e) {
}
//now you can load the content:

webEngine.load("https://example.com");

注意:此代码片段只是禁用证书验证,并不信任它。

关于JavaFX WebView 无法使用不受信任的 SSL 证书工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22605701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com