我在互联网上搜索了一天,但我没有任何线索可以解决我的问题。
请帮帮我。
我在银行注册了一个网络服务,银行发给我2个文件.crt文件和.key文件。
在我的客户进行交易后,银行会向我发送一条邮件请求消息以通知我的服务器(我的服务器收到此消息),但银行要求我发回该消息以通过他们的网络服务网址确认(他们的网址使用https)。
当我使用代码java发回消息时,我收到此异常
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
这是我的代码
URL url = new URL("https://bankurlservice");
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
KeyStore ksCACert = KeyStore.getInstance(KeyStore.getDefaultType());
ksCACert.load(new FileInputStream("keystore path"), "keystorepass".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
tmf.init(ksCACert);
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);
SSLSocketFactory sslSocketFactory = context.getSocketFactory();
urlConnection.setSSLSocketFactory(sslSocketFactory);
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String res = "";
String inputLine; while ((inputLine = in.readLine()) != null) { res += inputLine; } in.close();