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

SQL Server 驱动 和 TLS 版本不兼容 的问题

🍓 简介:java系列技术分享(👉持续更新中…🔥)
🍓 初衷:一起学习、一起进步、坚持不懈
🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏
🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝

🍓 更多文章请点击
在这里插入图片描述在这里插入图片描述

目录

  • 一、问题描述
  • 二、原因分析:
  • 三、解决方案
    • 3.1 服务器本地解决方案
    • 3.2 Docker容器部署解决方案

是的

一、问题描述

声明:java程序是docker容器化部署的
进行期初数据定时同步功能,sql server同步至mysql中,本地调用正常,发到服务器环境就会报错如下

在这里插入图片描述

- java.security path: /usr/local/openjdk-8/jre/lib/security
Security providers: [SUN version 1.8, SunRsaSign version 1.8, SunEC version 1.8, SunJSSE version 1.8, SunJCE 	vers1on 1.8,
SunJGSS version 1.8, SunSASL version 1.8, )
XMLDSig version 1.8, SunPCSC version 1.8]
SSLContext provider info: Sun JSSE provider(PKCS12, SunX509/PKIX key/trust factories,
SSLv3/TLSv1/TLSvl.1/TLSvl.2/TLSvl.3)
SSLContext provider services:

配置文件如下:

  # 动态数据源配置datasource:dynamic:primary: masterdatasource:slave:url: jdbc:sqlserver://192.168.0.1:1433;DatabaseName=testusername: rootpassword: xxxxxxxdriver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
<!-- sqlserver驱动 -->
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>sqljdbc4</artifactId><version>4.0</version></dependency>

二、原因分析:

这是一个Java安全配置相关的信息输出,通常是在启动应用或检查SSL配置时出现的。

通过异常信息可以看出
Java安全文件路径: /usr/local/openjdk-8/jre/lib/security
Java版本: OpenJDK 8
显示TLS/SSL支持的协议版本:SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3

检测到当前数据库使用的协商使用的是 TLSv1 协议,而项目中使用的时jdk8,它的协议版本高,不兼容 TLSv1 协议。
不能改其他项目的数据库的版本,则更改jdk安全配置文件java.security。

三、解决方案

3.1 服务器本地解决方案

修改java.security文件

放宽TLS/SSL的安全限制,解决某些老系统或内部系统连接时的兼容性问题
# 移除了 TLSv1, TLSv1.1 的禁用
在这里插入图片描述
修改前

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \include jdk.disabled.namedCurves

修改后(放宽策略):

jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA,\DH keySize < 1024, EC keySize < 224, anon, NULL, ECDH

3.2 Docker容器部署解决方案

因为每次Jenkins部署,都会根据Dockerfile生成新的镜像和启动容器,修改需要修改容器内的安全文件,不可能每次发版都改所以修改Dockerfile文件

FROM openjdk:8-jdk
ADD app/target/app.jar /app/app.jar
RUN sed -i 's/^jdk.tls.disabledAlgorithms=.*/jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, anon, NULL, ECDH/' /usr/local/openjdk-8/jre/lib/security/java.security
RUN echo 'Asia/Shanghai' >/etc/timezone
ENV JAVA_OPTS=""
ENV JAVA_ACTIVE=""
ENTRYPOINT exec java ${JAVA_OPTS} -jar ${JAVA_ACTIVE} /app/jb-access-server-business.jar
EXPOSE 35010

最主要就是RUN sed这行

sed: 流编辑器,用于文本处理
-i : 直接修改原文件

's/^jdk.tls.disabledAlgorithms=.*/新的值/'

s/原内容/新内容/: 替换命令
^jdk.tls.disabledAlgorithms=.*: 匹配以"jdk.tls.disabledAlgorithms="开头的整行

在这里插入图片描述在这里插入图片描述

这里是引用

http://www.dtcms.com/a/597697.html

相关文章:

  • 【低空安全】低空无人机集群侦测与反制概述
  • 制作网站的原因是计算机网页制作工具
  • 机器学习聚类k均值簇数的调优方法
  • 批量格式化XML与JSON文件小工具
  • TensorFlow深度学习实战(41)——TensorFlow生态系统
  • 网站空格 教程宁波龙山建设有限公司网站
  • 4-ARM-PEG-COOH(2),多功能羧基PEG的结构特性与反应特点
  • 东昌府区网站建设公司铜川网站建设公司电话
  • 大模型如何处理不同格式的文档?
  • GCPC总决赛(牛客)
  • 重庆网站优化指导wordpress esc html
  • Java-168 Neo4j CQL 实战:WHERE、DELETE/DETACH、SET、排序与分页
  • 双算法 SSL 证书技术白皮书:SM2+RSA/ECC 混合加密机制深度解析
  • 找别人做的网站怎样修改html代码颜色
  • FPGA教程系列-Vivado IP核FIFO核
  • 大模型-详解 Vision Transformer (ViT) (3)
  • 酒店网站建设的重要性户外家具技术支持东莞网站建设
  • 4G+5G RF静态射频共享的介绍
  • 怎么网站改版想代理个网站建设平台
  • 贝叶斯共识聚类(BCC)
  • Mybatis操作数据库(入门)
  • 高阅读量博文:抓住“痛点”与“热点”/ 高下载量资源:提供“成品”与“利器”
  • css之flex属性
  • 网站建设时间计划广州高端网站设计公司排名
  • 怎么用自己的网站做邮箱wordpress 设计主题
  • 【LlamaIndex】LlamaIndex与Milvus实现知识库
  • 如何查看网站是谁建设的茂名住房和城乡建设厅网站
  • 从图像导数到边缘检测:探索Sobel与Scharr算子的原理与实践
  • vue路由路径加上自动退出登录
  • 推图制作网站无法连接到wordpress