2016-03-22 12 views
1

証明書を必要とするWebサイトを開く統合Webブラウザを持つJavaFxに.netアプリケーションを移植しようとしています。 Windowsでは、提供された.pfxファイルとパスフレーズから証明書がインストールされました。 ブラウザがWebサイトを呼び出すと、ポップアップにインストールされている証明書が表示され、ユーザーが複数の証明書が存在し、Webサイトが開いている場合は正しい証明書が選択されます。 次のコードを使用して、証明書を使用して接続するWebサイトを開きます。JavaFX WebViewおよびクライアント証明書

private void Connect() throws NoSuchAlgorithmException, FileNotFoundException, KeyStoreException, IOException, CertificateException, UnrecoverableKeyException, KeyManagementException { 
    SSLContext ctx = SSLContext.getInstance("TLS"); 
    KeyManager[] keyManagers; 
    KeyStore keyStore = KeyStore.getInstance("pkcs12"); 
    FileInputStream keyStoreFile = new FileInputStream(new File("Certificate.pfx")); 
    String keyStorePassword = "password"; 
    keyStore.load(keyStoreFile, keyStorePassword.toCharArray()); 
    KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); 
    kmf.init(keyStore, keyStorePassword.toCharArray()); 
    keyManagers = kmf.getKeyManagers(); 
    ctx.init(keyManagers, null, new SecureRandom()); 

    SSLSocketFactory sslSocketFactory = ctx.getSocketFactory(); 
    URL url = new URL("https://example.com"); 
    HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); 
    urlConnection.setSSLSocketFactory(sslSocketFactory); 
    BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
    String inputLine; 
    while ((inputLine = in.readLine()) != null) { 
     System.out.println(inputLine); 
    } 
    in.close(); 
} 

これをWebViewコントロールでどのように動作させることができますか?

ありがとうございました

答えて

0

私は研究の支出日後に問題を解決しました。 ウェブサイトを開く前にこのコード行を追加すると、そのコードが機能します。

System.setProperty("javax.net.ssl.keyStore", "/path/to/certificate.pfx"); 
System.setProperty("javax.net.ssl.keyStorePassword","password"); 

このヘルプが必要です。

関連する問題