相关疑难解决方法(0)

使用HttpClient通过HTTPS信任所有证书

最近发布了一个关于HttpClient过度Https 的问题(在这里找到).我已经取得了一些进展,但我遇到了新的问题.和我的上一个问题一样,我似乎无法找到适合我的任何地方的例子.基本上,我希望我的客户端接受任何证书(因为我只指向一个服务器),但我一直在接受javax.net.ssl.SSLException: Not trusted server certificate exception.

所以这就是我所拥有的:


    public void connect() throws A_WHOLE_BUNCH_OF_EXCEPTIONS {

        HttpPost post = new HttpPost(new URI(PROD_URL));
        post.setEntity(new StringEntity(BODY));

        KeyStore trusted = KeyStore.getInstance("BKS");
        trusted.load(null, "".toCharArray());
        SSLSocketFactory sslf = new SSLSocketFactory(trusted);
        sslf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

        SchemeRegistry schemeRegistry = new SchemeRegistry();
        schemeRegistry.register(new Scheme ("https", sslf, 443));
        SingleClientConnManager cm = new SingleClientConnManager(post.getParams(),
                schemeRegistry);

        HttpClient client = new DefaultHttpClient(cm, post.getParams());
        HttpResponse result = client.execute(post);
    }
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

    W/System.err(  901): javax.net.ssl.SSLException: Not trusted server certificate 
    W/System.err(  901):    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:360) 
    W/System.err(  901): …
Run Code Online (Sandbox Code Playgroud)

java ssl https certificate apache-httpclient-4.x

386
推荐指数
9
解决办法
57万
查看次数

JavaFx Webview JDK 8无法加载自签名证书

我尝试将webview实现到我的javafx应用程序中,并且我正在使用JDK 8来开发它.

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

webEngine.load("https://google.com");
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用我的HTTPS自签名证书,则无法打开它.我试图使用此代码向您显示问题:

webEngine.getLoadWorker().stateProperty().addListener(
      new ChangeListener<Worker.State>() {
      public void changed(ObservableValue ov, Worker.State oldState, Worker.State newState) {                               
             if (webEngine.getLoadWorker().getException() != null && newState == State.FAILED){
            System.out.println(webEngine.getLoadWorker().getException().toString());
        }
  }
});
Run Code Online (Sandbox Code Playgroud)

我的问题是:

java.lang.Throwable:SSL握手失败

我尝试在使用我的webview之前添加以下代码来信任所有主机,但它不起作用:

// 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) {
        }
    } 
}; …
Run Code Online (Sandbox Code Playgroud)

java ssl javafx webview java-8

7
推荐指数
1
解决办法
4283
查看次数

JavaFX WebView无法加载某些站点

我正在尝试使用JavaFX的WebView来加载这个站点,但我得到的只是一个空白屏幕.WebView在其他网站上运行得非常好; 它在ACID3上获得100/100并加载其他HTTPS站点而没有任何问题.

我也找不到任何特别错误的网站.它具有由适当的CA签署的正确,未过期的证书,并且SSL实验室报告B级.我尝试了所有主流浏览器,没有人报告任何证书或SSL相关问题; 该网站渲染所有这些都很好.

任何帮助将不胜感激.即使是一个简单的"是的网站也为我打破了"或"这里没有问题"会有很大帮助.

我在Windows 8.1 64位上使用Java SDK 1.8.0_45-b14.

java javafx webview javafx-8 javafx-webengine

4
推荐指数
1
解决办法
3189
查看次数