springboot使用sqlserver报错The server selected protocol version TLS10 is not accepted by client preferen
报错解释:
这个错误表明Spring Boot应用在尝试连接SQL Server数据库时,服务器选择了TLS(传输层安全性)协议版本1.0,但是这个版本的协议不被客户端所支持或推荐使用。自2021年起,TLS 1.0和1.1不再被视为安全的,因此当你的应用尝试使用这些较旧的版本进行安全通信时,会出现此错误。
解决方法:
- 更新Spring Boot应用所依赖的SQL Server JDBC驱动到最新版本,以确保它支持较新的TLS协议版本(如TLS 1.2或更高)。
- 在Spring Boot应用的配置中强制使用TLS的更安全的版本。你可以在配置文件(如application.properties或application.yml)中设置JDBC连接字符串,添加必要的属性来指定TLS版本。例如,在
application.properties
中添加以下内容:
spring.datasource.url=jdbc:sqlserver://your_server;databaseName=your_database;encrypt=true;trustServerCertificate=false;loginTimeout=30;sslProtocol=TLSv1.2
- 确保SQL Server配置为支持所选的TLS版本。这可以在SQL Server配置管理器中设置,或者通过SQL命令设置服务器支持的协议。
- 如果你不能更改服务器的TLS设置,另一种解决方法是在你的客户端系统中修改注册表,以允许使用TLS 1.0和1.1,但这种方法通常不推荐,因为它可能会带来安全风险。
确保在进行任何更改之前备份相关配置,并在更新配置或依赖后测试应用以确保问题得到解决。
评论已关闭