我们研发的软件是springboot项目,数据库用的是sqlserver 2016,一直以来按操作手册部署都没有任何问题。现在遇到一个问题,用户环境用的是windows server 2019 标准版,sqlserver 2016也是英文版,然后正常部署,连接就报了ssl相关的错误。
还有我不明白为什么要用ssl,因为我们一直也没特别配置过ssl证书什么的。
请问该如何解决,GPT我用了好几款都没用,还请认真回答,否则拉黑,感谢!
java项目连接SqlServer数据库报错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
11条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
针对您所描述的问题,您的Java Spring Boot项目在连接SQL Server 2016数据库时遇到了SSL相关错误。根据提供的堆栈跟踪信息,错误提示为“Unexpected rethrowing”以及“SQL Server did not return a response. The connection has been closed.”。为解决这个问题,您可以按照以下步骤进行排查与配置:
步骤一:检查SQL Server SSL设置
确保SQL Server实例启用了SSL加密,并且配置正确。登录到SQL Server Management Studio(SSMS),执行以下T-SQL命令查看当前SSL设置:
SELECT * FROM sys.configurations WHERE name = 'Force Encryption';
如果返回值为
0
,表示未强制启用SSL。若要强制所有客户端连接使用SSL,您需要将其设置为1
:EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'force protocol encryption', 1; RECONFIGURE;
重启SQL Server服务使更改生效。
步骤二:验证SSL证书
确认SQL Server使用的SSL证书有效且受信任。在SSMS中,尝试通过启用SSL的连接方式连接到服务器(在连接属性中勾选“Encrypt connection”)。如果连接成功,说明SSL证书有效。若失败,请检查证书是否已安装到正确的证书存储(本地计算机\个人或受信任的根证书颁发机构)并确保其有效期和链完整性。
步骤三:更新JDBC驱动版本
确保您使用的Microsoft JDBC Driver for SQL Server版本与SQL Server 2016兼容且无已知SSL问题。访问官方下载页面获取最新版本,并在项目中替换现有驱动。
步骤四:配置JDBC连接字符串
在Spring Boot项目的application.properties或application.yml文件中,调整JDBC连接字符串以明确指定SSL相关参数。例如:
spring.datasource.url=jdbc:sqlserver://SISVN06517.sgm.shanghaigm.com:1433;databaseName=PanshSQL;encrypt=true;trustServerCertificate=true
这里设置了:
encrypt=true
:强制使用SSL加密。trustServerCertificate=true
:信任服务器提供的证书,无需验证其链完整性。仅在测试或内部环境中使用此选项,生产环境应使用受信任的证书。
步骤五:禁用SSL验证(仅用于临时调试)
如果以上步骤仍无法解决问题,可以暂时禁用SSL验证以进行调试。在Java代码中添加系统属性或在启动脚本中添加JVM参数:
System.setProperty("jsse.enableSNIExtension", "false");
或
java -Djsse.enableSNIExtension=false -jar your-app.jar
**注意:**禁用SSL验证仅适用于临时调试,不应在生产环境中使用。
通过上述步骤逐一排查与配置,应该能解决您的SSL连接问题。如果问题依然存在,请提供更详细的日志信息以便进一步分析。
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度