栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

javax.net.ssl.SSLHandshakeException: No appropriate protocol(已解决)

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javax.net.ssl.SSLHandshakeException: No appropriate protocol(已解决)

起因:

1 linux电脑中了病毒,删除文件的时候,不小心把系统的usr/share文件夹给删除了,重启之后,shh无法连接系统了,然后阿里的客服帮忙解决,说是网卡没有启动(猜测可能是网卡的配置是有存放再usr/share)中

2 然后可以登陆之后,发现很多命令都不能使用了,于是从其他服务器复制了usr/share过来,命令的是可以使用了

3启动jar项目的时候 说缺失文件,然后我重新安装了jdk,大部分都可以了

4重点来了 今天准备邮件发送的 出现如下错误了

javax.mail.MessagingException: Could not connect to SMTP host: smtpdm.aliyun.com, port: 465
 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.yszq.web.email.MailSender.sendout(MailSender.java:324)
 at com.yszq.web.util.MailSendUtil.sendHtmlMail(MailSendUtil.java:140)
 at com.yszq.web.service.impl.SendTemplateMsgServiceImpl.sendEmail3(SendTemplateMsgServiceImpl.java:592)
 at com.yszq.web.service.impl.SendTemplateMsgServiceImpl.sentTemplateEmail3(SendTemplateMsgServiceImpl.java:528)
 at com.yszq.web.controller.CustomerAcountController.sendEmailPush(CustomerAcountController.java:1850)
 at com.yszq.web.controller.CustomerAcountController.access$300(CustomerAcountController.java:85)
 at com.yszq.web.controller.CustomerAcountController$2.run(CustomerAcountController.java:1812)
 at java.lang.Thread.run(Thread.java:748)
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
 at sun.security.ssl.HandshakeContext.(HandshakeContext.java:171)
 at sun.security.ssl.ClientHandshakeContext.(ClientHandshakeContext.java:101)
 at sun.security.ssl.TransportContext.kickstart(TransportContext.java:238)
 at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:394)
 at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:373)
 at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:549)
 at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:354)
 at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:211)
 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
 ... 11 common frames omitted
javax.mail.MessagingException: Could not connect to SMTP host: smtpdm.aliyun.com, port: 465;
  nested exception is:
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

项目在本地可以正常发送邮件,在另外一台服务器也可以,唯独这台测试服务器错误

 

1 按照网上的,我修改了(删除SSLv3),然后不生效

/usr/local/java/jdk1.8.0_291/jre/lib/security/java.security 的文件,

修改为, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=RC4, MD5withRSA, DH keySize < 768,
    EC keySize < 224

2 怀疑是jdk的问题  然后从oracle官网下载了1.8版本的,安装了,修改了环境,还是不行

3 然后从可以正常的服务器那边拷贝了JDK过来 Fail

4真的是头大,然后尝试了重新安装openssl   结果是Fail

5尝试防火墙 把iptablse和firewall都关闭了 结果是Fail

6最后突然想到,项目是我打包再在jar里面的,会不会是内置的jdk环境信息呢  于是在本地的

/jre/lib/security/java.security  中 安照方法1操作了 重新打包上传,居然可以正常使用了

 

 

 

问题是解决了 但我还是不清楚 为什么测试环境的不行

 

 

 

 

 

 

 

 

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/903875.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号