SymmetricDS (SDS) 2.5.13 から 3.1.5 にアップグレードしています。SDS 2.5.13 で TLS/HTTPS が構成され、期待どおりに動作しています。ただし、まったく同じ証明書、キーストア/トラストストア ファイル、および同じ JDKを使用すると、SDS 3.1.5 でサービス ラッパー ログ (wrapper.log) に次のエラーが記録されます。
SEND TLSv1 ALERT: fatal, description = handshake_failure
WRITE: TLSv1 Alert, length = 2
called closeSocket()
handling exception: javax.net.ssl.SSLHandshakeException: no cipher suites in common
1 つが登録サーバー (親ノード) として構成された 2 つのノード構成があります。子ノードは、変更をプッシュおよびプルするように構成されています。Sun (Oracle) JDK 7 update 5 と適切な JCE Unlimited Strength Jurisdiction ポリシー ファイルを使用しています (256 ビット暗号にアクセスするため)。
Server 2008 で Windows サービスとしてスタンドアロン構成で SDS を実行しています。Windows ファイアウォールは現在オフになっています。
sym_service.conf ファイルを介して、次の TLS 関連の Java パラメーターをサービス ラッパーに渡します。
wrapper.java.additional.6=-Dsym.keystore.file=c:/java-keystore/bfvm01-w2ka.ks
wrapper.java.additional.7=-Djavax.net.ssl.keyStore=c:/java-keystore/bfvm01-w2ka.ks
wrapper.java.additional.8=-Djavax.net.ssl.trustStore=c:/java-keystore/bfvm01-w2ka.ks
wrapper.java.additional.9=-Djavax.net.ssl.keyStorePassword=letmein
wrapper.java.additional.10=-Djavax.net.ssl.trustStorePassword=letmein
wrapper.java.additional.11=-Dsun.net.client.defaultReadTimeout=1800000
wrapper.java.additional.12=-Dsun.net.client.defaultConnectTimeout=1800000
wrapper.java.additional.13=-Djavax.net.debug=ssl,handshake
注: ここでの Java アプリの標準的な方法として、キーストアとトラストストアの両方に同じ Java キーストア ファイルを使用しています。
これは、SDS を開始するようにサービス ラッパーを構成する方法です。
wrapper.app.parameter.1=org.jumpmind.symmetric.SymmetricLauncher
wrapper.app.parameter.2=--secure-server
wrapper.app.parameter.3=--secure-port
wrapper.app.parameter.4=25684
wrapper.app.parameter.5=--properties
wrapper.app.parameter.6=../conf/symmetric.properties
sym_node および symmetric.properties のエントリは、(HTTP ではなく) HTTPS を使用するように適切に構成されています。
親との通信を開始する子 SDS ノードは、次のエラーを報告します。
WRITE: TLSv1 Handshake, length = 198
READ: TLSv1 Alert, length = 2
RECV TLSv1 ALERT: fatal, handshake_failure
called closeSocket()
handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
親ノードが次のエラーを報告します。
SEND TLSv1 ALERT: fatal, description = handshake_failure
WRITE: TLSv1 Alert, length = 2
called closeSocket()
handling exception: javax.net.ssl.SSLHandshakeException: no cipher suites in common
前述したように、同じ構成 (サーバー、証明書、キーストア/トラストア ファイル、JDK) は、SDS 2.5.13 で TLS/HTTPS セキュリティを実現するために正常に機能します。唯一の違いは、SDS 3.1.5 への切り替えです。SDS 3.1.5 で TLS/HTTPS 構成を無効にし、代わりに HTTP を使用すると、親ノードと子ノードは相互に通信できます。
必死の健全性チェックとして、「Hello World」という簡単なクライアント サーバー アプリをコーディングして、子ノード マシンに SSLSocket を作成し、テキスト行をサーバー ノード マシンに送信しました (使用していたのと同じ TCP ポートを使用)。 SDSの場合)。同じJDKと同じキーストア/トラストストアファイルを使用してプログラムをコンパイルして実行しました。チャンピオンのように働きました。
私は完全に困惑しています。どんな助けでも大歓迎です。