解决:WARN:Tue Mar 26 23:36:57 CST 2024 WARN: Establishing SSL connection

本文讲述了在JavaJDBC编程中遇到的关于未验证服务器身份的SSL警告,解释了原因(安全性考虑和中间人攻击),并提供了将useSSL设置为false以关闭SSL验证的解决方法。
摘要由CSDN通过智能技术生成

小码在学习Java的JDBC编程中,碰到了一条非常长的异常警告,idea的框都装不下了!! 

一、异常信息

Tue Mar 26 23:36:57 CST 2024 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

翻译过来的意思就是:

3月26日星期二23:36:57 CST 2024警告:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果没有设置显式选项,则默认情况下必须建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为“false”。您需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储。 

 二、原因分析

 警告中已经很清楚的说明原因了,其实就是为了安全考虑。

  • 在没有服务器身份验证的情况下建立SSL连接是不安全的,因为它容易遭受中间人攻击。SSL连接的目的是确保通信的机密性和完整性,以保护数据不被窃听和篡改。
  • 服务器身份验证是SSL连接的一部分,它确保客户端与服务器之间的通信是与正确的服务器建立的。
  • 如果没有服务器身份验证,攻击者可以冒充服务器,与客户端建立SSL连接,并欺骗客户端发送敏感信息,如登录凭证、信用卡信息等。这种攻击被称为中间人攻击。
  • 通过服务器身份验证,SSL连接可以确保通信的可靠性。服务器会使用数字证书来证明自己的身份,并由可信的第三方机构颁发的证书来验证。如果客户端无法验证服务器的身份,应该终止连接,从而防止中间人攻击的发生。

因此,建议在建立SSL连接时,始终确保进行服务器身份验证,以保护通信的安全性。

 三、解决方法

警告中说如果没有设置显式选项,则默认情况下必须建立SSL连接,那么我们就设置显示选项不就完成了?

url:jdbc:mysql://localhost:3306/bitwork

 只需要在 url 后面加上 userSSL = false 即可

url:jdbc:mysql://localhost:3306/bitwork?useSSL=false 

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A小码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值