当前位置: 首页 > 面试题库 >

如何强制JavaMailSenderImpl使用TLS1.2?

韩靖琪
2023-03-14
问题内容

有一个在Tomcat上运行的JDK7应用程序,它具有以下环境设置:

-Dhttps.protocols=TLSv1.1,TLSv1.2

上面的设置可确保在进行API调用等操作时通过HTTPS连接时不使用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协议?

我做了一些搜索,看来这些环境设置仅适用于applet和Web客户端,不适用于服务器端应用程序

-Ddeployment.security.SSLv2Hello=false -Ddeployment.security.SSLv3=false -Ddeployment.security.TLSv1=false

问题答案:

这是寻找下一个家伙的解决方法:

mail.smtp.starttls.enable=true;
mail.smtp.ssl.protocols=TLSv1.2;


 类似资料:
  • 在Tomcat上运行JDK7应用程序时,它确实具有以下环境设置: 上面的设置确保我们在进行API调用等时通过HTTPS连接时不使用TLS 1.0。 我们还使用org.springframework.mail.javamail.JavaMailSenderImpl类发送传出的SMTP电子邮件,并使用以下道具: 问题是,升级到TLS1时,与SMTP电子邮件服务器的连接失败。2. javax。网ssl。

  • 问题内容: 是否有一个静态分析工具可以在IDE外部运行一致地强制使用@Override注释?CheckStyle具有MissingOverride检查,但仅适用于使用@inheritDoc Javadoc标记的方法。我正在寻找一种可以在连续集成计算机上的新构建配置中运行的工具。 问题答案: 一种方法是使用TeamCity的“检查”运行器。我不确定它是否真的可以在IDE之外运行,因为它是在Intel

  • 问题内容: 我有图像列表,我希望每个图像都有一个“下载”链接,以便用户可以下载图像。 所以有人可以指导我如何为php中的任何文件提供下载链接吗? 编辑 我希望在单击下载链接时显示一个下载面板,但我不想导航到要在浏览器中显示的图像 问题答案: 如果要强制下载,可以使用如下所示的内容: 如果仅使用常规链接链接到此脚本,则将下载文件。 顺便说一句,上面的代码段需要在页面的开头执行(在没有任何标题或HTM

  • 问题内容: 我正在尝试为Express.js创建一个中间件,以将所有非安全(端口80)通信重定向到安全SSL端口(443)。不幸的是,Express.js请求中没有任何信息可让您确定该请求是否来自http或https。 一种解决方案是重定向 每个 请求,但这不是我的选择。 笔记: 没有可能用Apache或其他东西来处理它。它 必须 在节点中完成。 应用程序中只能启动 一台 服务器。 您将如何解决?

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 2年前关闭。 改善这个问题 是否有一个静态分析工具可以在IDE外部运行一致地强制使用@Override注释?CheckStyle具有MissingOverride检查,但仅适用于使用@inheritDoc Javadoc标记的方法。我正在寻找一种可以在连续

  • 我有一个命令行JavaSE应用程序,我想对它进行一点现代化。我想在其他CDI特性中使用拦截器和依赖注入。然而,应用程序的设计并没有考虑CDI或依赖项注入,它广泛使用新的关键字和构造函数参数,而不是将对象创建委托给DI容器。CDI/Weld不会在使用new创建的对象上注入依赖项或运行拦截器,并且根本无法处理构造函数参数。一个简化的例子: Main由CDI容器实例化,someModule被注入,构造函