当前位置: 首页 > 知识库问答 >
问题:

如何强制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时,与SMTP电子邮件服务器的连接失败。2.

javax。网ssl。SSLHandshakeException:握手期间远程主机关闭连接

是否存在强制TLS1的设置或代码更改。2协议?

我做了一些搜索,看起来这些环境设置只适用于applet和web客户端,而不适用于服务器端应用

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

共有3个答案

曹镜
2023-03-14

我需要Vojtech Zavrel和Sunny的回答。我运行的是Java1.8SpringBoot1.2.5,运行的是BigSur11.2.3和SpringVersion4.2.1。释放

在我像这样更新依赖之后

<dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.5.0-b01</version>
</dependency>

我用

Properties prop = new Properties();
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.smtp.starttls.enable", "true");
prop.setProperty("mail.smtp.ssl.protocols", "TLSv1.2"); // Added this line
prop.setProperty("mail.smtp.ssl.trust", mailUri.getHost());
mailSender.setJavaMailProperties(prop);

我看到收到致命警报:协议\u版本错误解决。

司徒啸
2023-03-14

在一个相当旧的应用程序中,它对我不起作用,我不知道为什么。经过一些研究,我发现javax。应用程序依赖项中的邮件版本为1.4。您必须升级到至少1.5。

萧卜霸
2023-03-14

这是下一个寻找的人的解决方案:

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.2时,与SMTP电子邮件服务器的连接失败。 j

  • 如何禁用 TLS1.0 我不想在服务端(/usr/java/jdk1.8.0_261-amd64/jre/lib/Security/java.security)禁用它,因为它可能会影响在其上运行的应用程序。因此,我正在寻找禁用TLS1.0的方法 当我尝试通过命令行禁用它时,它会抛出以下错误:

  • 问题内容: 是否有一个静态分析工具可以在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标记的方法。我正在寻找一种可以在连续