1

Java経由でtlsv1.2を使用してhttps get/postに接続するのに問題があります。

誰かがガイドやいくつかの例を持っていますか? キーストアのパスワードで設定されたキーツールの秘密鍵と公開鍵によってインポートしました。SSLSocketFactory を使用しましたが、エラー https (ハンドシェイクではありません) しか得られませんでした。jvm -Dhttps.protocols="TLSv1.2" にパラメーターを追加して、TLS のバージョン 1.2 のみを有効にしました。しかし、何も...

クラスを実装し、SSLSocketFactory を使用するための例またはインポート証明書からのガイドを参照してください。

助けてくれてどうもありがとう...

4

3 に答える 3

0

これがうまくいくことを願っています

InputStream is = new FileInputStream("cert.crt");

CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate caCert = (X509Certificate)cf.generateCertificate(is);

TrustManagerFactory tmf = TrustManagerFactory
    .getInstance(TrustManagerFactory.getDefaultAlgorithm());
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(null); // You don't need the KeyStore instance to come from a file.
ks.setCertificateEntry("caCert", caCert);

tmf.init(ks);

SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, tmf.getTrustManagers(), null);

そして、SocketFactory を作成するには

SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, new String[] { "TLSv1.2" }, null,
            SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
于 2016-07-18T08:33:24.217 に答える