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.<init>(HandshakeContext.java:171)
 at sun.security.ssl.ClientHandshakeContext.<init>(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操作了 重新打包上传,居然可以正常使用了

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值