javax.net.ssl.SSLHandshakeException: No appropriate protocol报错解决
一、问题描述
用java开发了一个简单的***发送邮件***的程序,本地运行正常,但是上传到服务器就出现报错:
Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtp.qq.com, port: 465;
nested exception is:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at com.kotoba.MailDemo.main(MailDemo.java:42)
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
二、问题解决
方案一
[原文参考地址](javax.net.ssl.SSLHandshakeException: No appropriate protocol报错解决_蓝缘的博客-CSDN博客)
1、找到jdk目录/jre/lib/security/java.security,去掉jdk.tls.disabledAlgorithm中的SSLv3、TLSv1、TLSv1.1,参考阿里数据库连接池Druid 连接MySQL失败:javax.net.ssl.SSLHandshakeException: No appropriate protocol_Wingkin的博客-CSDN博客
2、但是上面方法并没有解决问题,还需要执行以下命令,才最终解决报错,参考java - SSLHandShakeException No Appropriate Protocol - Stack Overflow
update-crypto-policies --set LEGACY
方案二(亲测有效)
我在使用方案一没有效果后,尝试了“Win+r”输入【inetcpl.cpl】打开windows本机的【SSLv3, TLSv1, TLSv1.1】,仍没有解决。在尝试了很多次后都快放弃了的时候,最后想着网上大家都在说时因为Java.security这个文件,就尝试把jdk的版本换换,结果没想到成功了!🙌😁🙌
1.
在IDEA中,我们直接打开项目结构,如图下载新的jdk并更换(从官网自己下也行):
2.
然后重新构建一下项目,再运行项目就可以跑起来了!╰(°▽°)╯文章来源:https://www.toymoban.com/news/detail-414221.html
我这里测试了jdk11和jdk13,11可以运行,但是13不行。
如果11和13都不行的话在试试其他版本吧👍
文章来源地址https://www.toymoban.com/news/detail-414221.html
到了这里,关于javax.net.ssl.SSLHandshakeException No appropriate protocol报错解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!