궁금해요

여미숙

드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다

작성자 : 여미숙 작성일 : 2016.11.09 10:39:27 댓글수 : 4 조회수 : 11,365

db : window 2008 r2 (seqserver 2008)

was : apache-tomcat 6

jre :
Java(TM) SE Runtime Environment (build 1.6.0_34-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.9-b04, mixed mode)

으로 운영중이던 application이 갑자기 에러가 발생되고 있습니다. jdbc쪽 커넥션이 100% 연결이 안되는게 아니라

아래 error가 수시로 납니다. DB 커넥션은 SSL사용하지 않고 일반적인 연결을 사용하고 있습니다.

해당 에러가 최초 발생된 시점에 서버가 변경된 내역은 wondows 보안패치들 밖에는 없습니다. 

 

도움의 손길 부탁드립니다. 

 

error 내용입니다.

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. 오류: "SQL Server에서 불완전한 응답을 반환했습니다. 연결이 닫혔습니다.".
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1352)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1533)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1042)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:154)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:174)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:165)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
    at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:200)
    ... 46 more
Caused by: java.io.IOException: SQL Server에서 불완전한 응답을 반환했습니다. 연결이 닫혔습니다.
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:607)
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:664)
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:656)
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:851)
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:839)
    at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
    at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1230)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1214)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1483)
    ... 57 more

첨부파일

  • 사용중인 JDBC 드라이버 버전 좀 알려주세요.

  • sqljdbc4.jar 버전 4.0 사용합니다.  

  • trace 말고 자세한 로그를 확인 해봐야 할 것 같은데요.

    혹시 재현 되는 환경에서 아래 URL 참조 하여 상세 로그 수집 내용을 올려주실 수 있으신가요?

     

    https://msdn.microsoft.com/en-us/library/ms378517(v=sql.110).aspx

  • 그리고 SQLServer 접속할 때 사용하는 jdbc 옵션 정보도 같이 올려주세요.

  • 댓글을 입력 하시려면 로그인 해주세요.