server 2008 服务器不能访问 java项目,Java 8上的SQL Server JDBC错误:驱动程序无法使用安全套接字层(SSL)加密建立到SQL Server的安全连接...
我在一个Linux实例上的Java 8 JVM中启用了SSL记录,从而再现了这个问题.使用-Djavax.net.debug = ssl:handshake:verbose打开SSL日志记录.这显示了一些有用的信息.
我们在生产中使用并已证明可以为我们工作的解决方法是在JVM上设置此参数:
-Djdk.tls.client.protocols=TLSv1
如果你想要更多的细节,请继续阅读.
在可以再现问题的服务器上(再次只有5-10%的时间),我观察到以下情况:
*** ClientHello,TLSv1.2
--- 8
main,WRITE: TLSv1.2 Handshake,length = 195
main,READ: TLSv1.2 Handshake,length = 1130
*** ServerHello,TLSv1.2
--- 8
%% Initialized: [Session-79,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256]
** TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
--- 8
Algorithm: [SHA1withRSA]
--- 8
*** Diffie-Hellman ServerKeyExchange
--- 8
*** ServerHelloDone
*** ClientKeyExchange,DH
--- 8
main,length = 133
--- 8
main,WRITE: TLSv1.2 Change Cipher Spec,length = 1
*** Finished
verify_data: { 108,116,29,115,13,26,154,198,17,125,114,166 }
***
main,length = 40
main,called close()
main,called closeInternal(true)
main,SEND TLSv1.2 ALERT: warning,description = close_notify
main,WRITE: TLSv1.2 Alert,length = 26
main,called closeSocket(true)
main,waiting for close_notify or alert: state 5
main,received EOFException: ignored
main,called closeInternal(false)
main,close invoked again; state = 5
main,handling exception: java.io.IOException: sql Server returned an incomplete response. The connection has been closed. ClientConnectionId:12a722b3-d61d-4ce4-8319-af049a0a4415
请注意,TLSv1.2由数据库服务器选择并用于此交换.我观察到,当有问题的linux服务连接失败时,TLSv1.2始终是所选的级别.但是,当使用TLSv1.2时,连接不总是失败.他们只能在5-10%的时间内失败.
现在这里是一个没有问题的服务器的交换.一切都是平等的.即,连接到相同的数据库,相同版本的JVM(Java 1.8.0_60),相同的JDBC驱动程序等.请注意,在这里,TLSv1由数据库服务器而不是TLSv1.2选择,如在故障服务器的情况下.
*** ClientHello,length = 207
main,READ: TLSv1 Handshake,length = 604
*** ServerHello,TLSv1
--- 8
Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA
--- 8
%% Initialized: [Session-79,TLS_RSA_WITH_AES_128_CBC_SHA]
** TLS_RSA_WITH_AES_128_CBC_SHA
--- 8
Algorithm: [SHA1withRSA]
--- 8
***
*** ServerHelloDone
*** ClientKeyExchange,RSA PreMasterSecret,TLSv1
--- 8
main,WRITE: TLSv1 Handshake,length = 134
main,WRITE: TLSv1 Change Cipher Spec,length = 1
*** Finished
verify_data: { 26,155,166,89,229,193,126,39,103,206,21 }
***
main,length = 48
main,READ: TLSv1 Change Cipher Spec,length = 1
main,length = 48
*** Finished
因此,当在Linux JVM和sql Server之间协商TLSv1时,连接总是成功的.当协商TLSv1.2时,我们得到零星的连接失败.
(注意:Java 7(1.7.0_51)总是协商TLSv1,这就是为什么我们使用Java 7 JVM的问题.)
我们还有的开放性问题是:
>为什么从两个不同的Linux服务器运行的相同的Java 8 JVM将始终协商TLSv1,但是当从另一个Linux服务器连接时,它始终协商TLSv1.2.
>而且为什么TLSv1.2协商连接在该服务器上最成功,但并非全部成功?
资源:
server 2008 服务器不能访问 java项目,Java 8上的SQL Server JDBC错误:驱动程序无法使用安全套接字层(SSL)加密建立到SQL Server的安全连接...相关推荐
- 驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
使用环境:tomcat8,jdk1.8 错误描述:使用jdbc连接SqlServer数据库报错 com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程 ...
- 驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。
使用jdbc链接数据库,出现下图报错. 百度搜索 各种方法用尽还是没有解决,后来自己解决了.希望能帮到大家! (我这是汉化后)点击窗口(Windows)-----首选项(Preferences) 选择 ...
- 驱动程序无法使用安全套接字层(SSL)加密建立到SQL Server的安全连接
报错:ERROR c.a.d.p.DruidDataSource$CreateConnectionThread [Druid-ConnectionPool-Create-1218864105] cre ...
- 驱动程序无法使用安全套接字层(SSL)加密与sql server建立安全连接
使用myeclipse连接sql server2008时出现错误 驱动程序无法使用安全套接字层(SSL)加密与sql server建立安全连接关于这个问题我找了好几天了,刚开始我百度的时候各种说法我都 ...
- 【Java】驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
由于工作需要使用SpringBoot项目连接SQL Server作数据查询,在使用sqljdbc4-4.0.jar驱动包对数据库进行访问时出现了"驱动程序无法通过使用安全套接字层(SSL)加 ...
- com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接。
@TOcom.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接.C co ...
- 连接数据库报com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
JDBC加载驱动,连接SQLServer 2012 报 java.ext.dirs: C:\Program Files\Java\jdk1.8.0_331\jre\lib\ext;C:\Windows ...
- [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is
文章目录 项目场景 问题描述 解决方案 方案一:修改jdk(推荐) 方案二:修改idea 测试连接 项目场景 Idea使用DateSource插件连接SqlServer数据库报错 问题描述 [08S0 ...
- com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立 安全连接 驱动版本 最新 ...
最新文章
- 区块链BaaS云服务(40) 泰岳FruitChain
- 贩卖知识的“成功学”,大师“卖拐”几时休?
- 安装mysql的过程可以中断吗_安装 mysql 遇到的坑(附 mysql 安装过程)
- 编写可阅读代码的艺术 培训实践 第一部分 表面层次的改进
- 数据结构-图-Java实现:有向图 图存储(邻接矩阵),最小生成树,广度深度遍历,图的连通性,最短路径1...
- Error:Cannot find bean: org.apache.struts.taglib.html.BEAN in any scope
- Java常用算法手册-01算法概述
- mysql ocp考试准备多久_MySQL OCP考试复习系列--开篇:了解MySQL考试
- [android基础知识] 之十三: Runtime.getRuntime()
- spring jpa Specification in 查询
- 如何对网络安全攻击采取防御措施
- Let X be a finite set f : X → X a function. Prove that f is injective if and only if f is surjective
- arduino tft 方向_Arduino2.4英寸TFT显示屏的演示
- java tessdata训练_Tesseract训练中文字体识别
- 【Hexo】选择更高级的Markdown渲染器
- 【C语言】常见关键字
- 探索<赛博朋克>风格游戏美术
- intro.js新手引导
- 2021-2027中国食品成本核算软件市场现状及未来发展趋势
- C语言——求s=a+aa+aaa+aaaa+aa...a的值
热门文章
- .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐
- Redis基本使用及百亿数据量中的使用技巧分享
- asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问
- ASP.NET Core 2.0 依赖注入
- 用 Docker Machine 创建 Azure 虚拟主机
- 不可思议黑科技,Xamarin移动开发新时代
- [认证授权] 2.OAuth2授权(续) amp;amp; JSON Web Token
- .NET Core项目从xproj+project.json向csproj迁移简介
- [C#7] 1.Tuples(元组)
- powershell 文件/文件夹操作