当前位置: 首页 > news >正文

连接Sql Server时报错无法通过使用安全套接字层加密与 SQL Server 建立安全连接

SQL Server

文章目录
      • 一. 前言
      • 二. 解决方案
        • 方案1
        • 方案2
      • 三. 总结
一. 前言

在《数据库原理》这门课的实验上,需要使用SQL Server,然后使用jdbc连接sql server突然报错为:SQLServerException: “Encrypt”属性设置为“true”且 “trustServerCertificate”属性设置为“false”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server 建立安全连接,整理出来以下两种解决方案。

二. 解决方案

一共两种解决方案,如下所示:

方案1

首先是网上寻找到的第一种办法,就是在自己安装的JDK目录下找到java.security文件,然后打开这个文件。查询jdk.tls.disabledAlgorithms,然后将里面的3DES_EDE_CBC去掉,然后再使用旧的算法。

下面是我的电脑上的例子:

但是遗憾的是,这个解决办法没有解决我的问题。

方案2
  1. 连接数据库时,如果我们需要对在客户端与服务器之间发送的所有数据使用 TLS 加密,那么就需要设置encrypt=true,同时设置trustServerCertificate=trueMicrosoft JDBC Driver for SQL Server 将不验证SQL Server TLS 证书。 此设置常用于允许在测试环境中建立连接,如 SQL Server 实例只有自签名证书的情况。

  2. 连接数据库时,如果我们不想对在客户端与服务器之间发送的所有数据使用 TLS 加密,那么就需要设置encrypt=false.

操作方法如下:

String dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=false";

OR

String dbURL="jdbc:sqlserver://localhost:1433;databaseName=TestDB;encrypt=true;trustServerCertificate=true";
三. 总结
  1. 修改java.secrity文件
  2. 在url后面加上encrypt=false或者encrypt=true;trustServerCertificate=true(推荐)

如果你在阅读本文中发现描述不够准确或有误的地方,还请给予我一定的反馈,大家一起学习进步!!!

相关文章:

  • 通俗易懂的浏览器事件循环指南(含async/await)
  • Linux提权之计划任务反弹shell提权(十一)
  • 【Viewer.js】vue3封装图片查看器
  • 【时时三省】(C语言基础)结构化程序设计方法
  • 二:前端发送POST请求,后端获取数据
  • Java并发 ThreadLocal 原理(详解)
  • c++中,什么时候应该使用mutable关键字?
  • Bash Shell控制台终端命令合集
  • C语言番外篇(3)------------>break、continue
  • 论文笔记:Autonomy-of-Experts Model
  • watchEffect 里有响应式依赖时并没有自动追踪
  • C++关键字之mutable
  • Tesseract OCR:起源、发展与完整使用指南
  • 多线程篇学习面试
  • 请谈谈 Vue 中的 key 属性的重要性,如何确保列表项的唯一标识?
  • 设计模式Python版 中介者模式
  • Vue 3 + Vite 项目中配置代理解决开发环境中跨域请求问题
  • Linux系统管理与编程01:准备工作
  • vim 多个关键字高亮插件介绍
  • A. Jagged Swaps
  • 俄外长与美国务卿通电话,讨论俄美关系及乌克兰问题
  • 王羲之《丧乱帖》在日本流传了1300年,将在大阪展23天
  • 当智驾成标配,车企暗战升级|2025上海车展
  • 人民日报:广东全力推动外贸稳量提质
  • 中国太保一季度净赚96.27亿元降18.1%,营收同比下降1.8%
  • 商务部就海外社交平台上发布从所谓中国“代工厂”低价购买国际知名品牌事答问