javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at sun.security.ssl.Handshaker.activate(Handshaker.java:503)
at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1482)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1351)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
private void populateDataList() {
try {
URL url = new URL("https://myURL.com/Data/Data.txt");
URLConnection con = url.openConnection();
con.setRequestProperty("Connection", "close");
con.setDoInput(true);
con.setUseCaches(false);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
int i = 0;
while((line = in.readLine()) != null) {
this.url.add(i, line);
i++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
我尝试将我的SSL证书添加到JVM的密钥存储库中,我甚至尝试用这段代码接受每一个证书(这违背了我所知道的SSL的目的
private void trustCertificate() {
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (GeneralSecurityException e) {
}
try {
URL url = new URL("https://myURL.com/index.php");
URLConnection con = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
while((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
}
}
我被难住了,任何帮助都将非常感谢!
在$jre/lib/security/java.security
中:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA, DH keySize < 1024, \
EC keySize < 224, 3DES_EDE_CBC, anon, NULL
这行是启用的,在我注释掉这行之后,一切都正常工作。很明显,在JRE1.8.0_181中,在/之后启用了这一行。
我的Java版本是“1.8.0_201”。
我曾尝试将java 11.0.9连接到MySQL 5.6连接器,但在服务器中出现以下错误,但在本地相同的代码中工作正常 引起:javax.net.ssl.SSLHandshakeException:没有适当的协议(协议被禁用或密码套件不合适)在java.base/sun.security.ssl.HandshakeContext.(未知源)在java.base/sun.security.ssl.C
在IntelliJ想法更新之后,我在尝试连接到DB时得到了异常。
我试图用ssl证书加载一个web服务,它说是服务器启动,但当我试图使用这个web服务(通过SOAPUI)时,我得到了“SSLHandShakeException”,在eclipse上日志中我看到以下内容: SSLV2无可用密码套件Hello无可用密码套件SSLv3无可用密码套件TLSv1无可用密码套件TLSv1.1无可用密码套件TLSv1.2 qtp1589240253-57,致命错误:80:问题
问题内容: 按照此处的说明进行操作,并重新创建了我以前错误创建的证书。就像我现在在服务器和客户端上看到的一样,情况发生了变化。 服务器是ClassFileServer.java,相应的客户端是SSLSocketClientWithClientAuth.java 有关使两端都能正常播放的任何提示,请注意,我使用的是localhost,因此我假设密码功能相同。 更新: 这是我用于生成文件的步骤,我可能
问题内容: 我试图让Spring中的控制器按照3.0的建议使用Jackson类返回无济于事的JSON响应。我的课程路径中当然有杰克逊jar文件(jackson-core- asl-1.5.5.jar和jackson-mapper-asl-1.5.5.jar)。 至于appconfig.xml条目,我不确定是否需要这些。我将它们放在那里,作为最后的绝望之举,然后再回到ol’fashion non-j
我知道这个话题还有其他一些问题(有答案)。但这些对我都没有帮助。 我有一个postfix服务器(debian 10上的postfix 3.4.14),配置如下(只有有趣的部分): 好的,首先我删除了中的扩展,因为这没有帮助而且是错误的(感谢dave_thompson_085的提示)。 下面是发送电子邮件的Java代码(代码有一个“很长”的历史,所以请不要奇怪为什么使用,而不是...) 为了调试,我