我有一个在Tomcat上运行的JDK7应用程序,它具有以下环境设置:
-Dhttps.protocols=TLSv1.1,TLSv1.2
上述设置确保我们在通过HTTPS进行API调用时不使用TLS 1.0。
我们还使用org.springframework.mail.javamail.JavaMailSenderImpl类发送外部SMTP电子邮件,并使用以下属性:
mail.smtp.auth=false;mail.smtp.socketFactory.port=2525;mail.smtp.socketFactory.fallback=true;mail.smtp.starttls.enable=true
问题在于当升级到TLS1.2时,连接到SMTP电子邮件服务器失败。
javax.net.ssl.SSLHandshakeException: 远程主机在握手期间关闭了连接
是否有设置或代码更改可强制使用TLS1.2协议?
我做了一些搜索,看起来这些环境设置仅适用于小应用程序和Web客户端,而不适用于服务器端应用程序。
-Ddeployment.security.SSLv2Hello=false -Ddeployment.security.SSLv3=false -Ddeployment.security.TLSv1=false