2017-12-21 78 views
0

Domino Server上でJavaエージェントを実行しています。それは、バージョンDomino 9.0.1 FP7上で正常に動作していました。 MS Windowsサーバーは2003年です。SQLサーバーのバージョンを待っています。JDBC SQL ServerにSSL接続(Domino Java Agent FP 9)を確立できませんでした

これで、Domino Serverを9.0.1 FP9にアップグレードしました。 JVMは1.6から1.8になりました。

このエラーは、JDBCドライバを4.2から6.2.2にアップグレードしたため、これを問題なく解決しようとしたため(同じエラー)、この例外エラーがJVMまたはJavaポリシーによって発生していると想定しています。

接続文字列のオリジナル(JDBCドライバ... JVM/libに/ EXT/MSSQL-JDBC-6.2.2.jre8.jar)

String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
      String url = "jdbc:sqlserver://SERVER"; 

接続文字列と同じ結果(JDBCドライバ... JVM/lib/ext/mssql-jdbc-6.2.2.jre8.jar) - encrypt = falseが追加されました。

String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
      String url = "jdbc:sqlserver://SERVER:1433;encrypt=false;"; 

例外

com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:e8a3a2c4-d9a9-4f82-a63f-967cae0c29f0". 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2435) 
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1816) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2022) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1687) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866) 
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:569) 
    at java.sql.DriverManager.getConnection(DriverManager.java:675) 
    at java.sql.DriverManager.getConnection(DriverManager.java:258) 
    at OrderTrackOrders.NotesMain(Unknown Source) 
    at lotus.domino.AgentBase.runNotes(Unknown Source) 
    at lotus.domino.NotesThread.run(Unknown Source) 
Caused by: java.io.IOException: SQL Server did not return a response. The connection has been closed. ClientConnectionId:e8a3a2c4-d9a9-4f82-a63f-967cae0c29f0 
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:774) 
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:830) 
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:821) 
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:1003) 
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:991) 
    at com.ibm.jsse2.b.a(b.java:272) 
    at com.ibm.jsse2.b.a(b.java:148) 
    at com.ibm.jsse2.at.a(at.java:19) 
    at com.ibm.jsse2.at.i(at.java:627) 
    at com.ibm.jsse2.at.a(at.java:689) 
    at com.ibm.jsse2.at.startHandshake(at.java:432) 
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1753) 
    ... 10 more 
+1

SQL Serverののバージョンは? SQL Serverはプロトコル暗号化を強制するように構成されていますか? SQLログのログイン失敗に関する詳細はありますか? –

+0

Ms windows 2003 server。 SQLサーバーのバージョンがわかると、私は再び報告します。 O/SがTLS 1.2をサポートしていない場合、私のオプションは何ですか? – xpagesbeast

+0

サポート外のオペレーティングシステムでは、実際には物を変更すべきではありません。 Force EncryptionがSQL Serverに設定されている場合は、暗号化せずに接続することもできます。 –

答えて

2

Domino FeaturePack 9より前は、このエージェントはFP6とFP8で問題なく動作しました。

これは、Windows 2003サーバー上で実行されているMS SQLサーバーに接続するとき、FP9 java.securityファイル内の無効なTLSセキュリティサイファーに関連するセキュリティ上の問題です。

ソリューションは、java.securityファイルでこの変更を行うためには 'のDominoプログラムディレクトリ/ JVM//セキュリティ/ java.securityはLIB' から3DES_EDE_CBC、DESEDE を削除するには以下の2行を変更し :

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, 3DES_EDE_CBC, DESede, \ EC keySize < 224 

へ: のDominoプログラムディレクトリ/ JVM/libに/セキュリティ/ javaの:

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, EC keySize < 224 

機能パック9サーバー上のDominoプログラムディレクトリにあるjava.securityファイルを次のように変更します。セキュリティ

前FP9に変更1 :FP9に更新

jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024 

:前FP9へ

jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \ 
    DSA keySize < 1024, EC keySize < 224 

変更2 :jdk.jar.disabledAlgorithms=MD2, RSA keySize < 1024 はFP9に更新:jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024

変更3 FP9より前:jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768は FP9に更新:

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, 3DES_EDE_CBC, DESede, \ 
    EC keySize < 224 

変更4(次のエントリがFP9にNEWいる)

jdk.xml.dsig.secureValidationPolicy=\ 
disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\ 
disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\ 
disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\ 
disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\ 
maxTransforms 5,\ 
maxReferences 30,\ 
disallowReferenceUriSchemes file http https,\ 
minKeySize RSA 1024,\ 
minKeySize DSA 1024,\ 
noDuplicateIds,\ 
noRetrievalMethodLoops 

sun.rmi.registry.registryFilter=javax.rmi.CORBA.Stub 
1

、java.securityをチェックアウト(私は、今、SSLの検索を正確なプロパティを取得することはできません)無効な暗号をコメントしようとする、または実質このhttps://blogs.msdn.microsoft.com/dataaccesstechnologies/2016/11/30/intermittent-jdbc-connectivity-issue-the-driver-could-not-establish-a-secure-connection-to-sql-server-by-using-secure-sockets-layer-ssl-encryption-error-sql-server-returned-an-incomplete-respons/

解決策はopensslで1433をテストし、どの暗号化設定を使用すべきかを確認することです。

+0

ありがとう、これは私たちを右に置くトラック。 Tomは詳細な修正を文書化しました。 – xpagesbeast

関連する問題