- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 SymmetricDS (SDS) 2.5.13 升级到 3.1.5。 我在 SDS 2.5.13 下配置了 TLS/HTTPS 并按预期工作。但是,使用完全相同的证书、 keystore /信任库文件和相同的 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
我有一个双节点配置,其中一个配置为注册服务器(父节点)。子节点配置为推送和拉取更改。我正在使用 Sun (Oracle) JDK 7 update 5 和适当的 JCE Unlimited Strength Jurisdiction Policy Files(以获得对 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 应用程序的标准做法,我们为 keystore 和信任库使用相同的 Java keystore 文件。
这是配置服务包装器以启动 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 中的条目已正确配置为使用 HTTPS(而不是 HTTP)。
启动与父节点通信的子 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
正如我之前提到的,相同的配置(服务器、证书、 keystore /trustore 文件、JDK)可以很好地在 SDS 2.5.13 下实现 TLS/HTTPS 安全性。唯一的增量是切换到 SDS 3.1.5。如果我在 SDS 3.1.5 中禁用 TLS/HTTPS 配置并改用 HTTP,则父节点和子节点可以相互通信。
作为绝望的完整性检查,我编写了一个快速的“Hello World”客户端服务器应用程序,以在我的子节点机器上创建一个 SSLSocket 并将一行文本发送到服务器节点机器(使用与我相同的 TCP 端口一直用于 SDS)。使用相同的 JDK 和相同的 keystore /信任库文件编译并运行程序。像冠军一样工作。
我完全被难住了。任何帮助将不胜感激。
最佳答案
回答了我自己的问题。显然除了我之外没有人在 SymmetricDS (SDS) 节点之间使用 TLS(因为完全没有响应)。最初的错误消息让我失望,让我查找了所有错误的地方。
似乎 SDS 的 3.x 版本(至少 3.1.5)现在要求您提供您在 keystore 中使用的证书的“别名”。该值作为 Java 运行时参数“sym.keystore.ssl.cert.alias”提供。对于 Windows 用户,它将放置在服务包装器配置文件 (sym_service.conf) 中:
wrapper.java.additional.XX=-Dsym.keystore.ssl.cert.alias=foo
此参数在 SDS 2.5.13 中似乎不需要或不存在,并且在 SDS 3.1.5(或更高版本)中的任何地方都没有记录。它没有出现在随 SDS 3.1.5(或 SDS 3.2.0,我检查过)的二进制下载提供的任何配置文件中。
通过查看 SDS 源代码如何设置安全连接,我能够找出我的 SDS TLS 问题。
org.jumpmind.symmetric.SymmetricWebServer 使用证书别名如下:
sslConnectorFactory.setCertAlias(System.getProperty(SystemConstants.SYSPROP_KEYSTORE_CERT_ALIAS, "sym"));
SystemConstants.SYSPROP_KEYSTORE_CERT_ALIAS 设置为“sym.keystore.ssl.cert.alias”。
一旦我在 sym_service.conf 中提供了正确的别名,我就可以开始了。
关于java - 握手失败/没有共同的密码套件 - SymmetricDS 3.1.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13881221/
我目前正在使用 SymmetricDS 3.8.27。我有一个逗号分隔的文件,其中包含数据库表的数据。是否可以使用 SymmetricDS 将该数据从 CSV 文件复制到 MySql 数据库表中?如果
我有一个运行 SymmetricDS 的 3 服务器。假设我的节点 1 是主节点,节点 2.node 3 是子节点。 当一些数据被插入到节点 2 时,它被同步到节点 1,类似地,节点 3 的数据正在与
我正在尝试使用 SymmetricDS pro v 3.7.23 配置一个复制的备份数据库 我使用 2 个文件:master.properties 用于主数据库: "external.id=serve
我感觉有点傻,我搜索答案并没有发现其他人遇到这个问题。 假设我有 NodeHQ、Node1 和 Node2。我已经创建了触发器来在 3 个之间同步 TableA,如下所示: Node1 NodeHQ
我已使用 Azure SQL 在 Azure Windows Server 2016 上为主数据库和从数据库设置了 SymmetricDS 节点。我现在想要在高可用性模式下设置 SymmetricDS
我需要为 SymmetricDS 创建一种新方言,以将数据从 MySQl/MSSql/Oracle 复制到新数据库(现在没有方言)。这个数据库有特定的sql。我已阅读http://www.symmet
我们正在尝试使用 SymmetricDS 将我们的 Microsoft SQL Server 模式复制到 MySQL 服务器, 我让它运行并且工作正常,但我需要采取的下一步是将 SymmetricDS
我们有一个 corp 节点和许多用于文件同步的存储节点。我们有从每个商店节点到公司节点的同步文件。不同店铺的源码目录不同。 我们可以使用 bean shell 脚本或任何扩展来动态更改文件触发器的基本
我正在使用对称 DS toll 进行数据库同步。每当我将一些字段插入主节点时,它应该流向从节点。 我检查了 sym_data 表,数据正在创建,但从属节点中没有更新数据,也没有存在错误的传出批处理。
我需要将数据从oracle迁移并同步到mysql。另外,我想要在同步和迁移期间进行数据转换,因为 mysql 的表设计与 oracle 不同。 我正在尝试使用 symmetryds 来实现我的目标,但
我有两个数据库:oracle 和 postgres。 SymmetricDS 在两个方向上同步表。似乎一切正常。但是我需要一个基于触发器的逻辑来“即时”更正插入/更新的行。此触发器必须位于 oracl
我将 SymmetricDS 与许多商店节点和一个公司节点一起使用。 我必须在存储节点中的表与公司节点中的表之间进行转换同步,并使用 sym_transform_table 和 sym_transfo
我需要编写代码,使用 SymmetricDS 并在按下按钮时同步两个数据库。 IE。我需要按下按钮,它显示它正在同步,然后当没有更多变化时它会说“一切正常”并让我继续操作。 除了确定一切都已同步的方法
我正在配置 SymmetricDS 3.6.12 的两个实例。服务器实例在 Glassfish 3 服务器中工作,使用 8181 端口作为 https。客户端实例作为服务运行(在 jetty 中),h
嗯,我正在尝试将数据从内存中的 DB1 迁移到我的 DB2。为此,我使用 SymmetricDS,其配置方式是,当 SymmetricDS 启动时,它将执行从 DB1 到 DB2 的初始加载。此外,每
我正在测试 SymmetricDS,我对应该使用哪种方法来同步某些特定的表有一些疑问。我有两个应用程序,第一个是 ERP,第二个是 PDV。有些表可以同步到所有 PDV 数据库,但是,在某些表中,行应
我正在尝试使用 SymmetricDS 为一个中心节点和许多客户端实现多主机双向同步。客户端仅与中央节点(星形拓扑)通信。我在处理主键冲突时遇到问题。 例如数据库包含带有列 id、name 的表“pe
INFO [client-001-job-3] o.j.s.s.impl.DataLoaderService - Using registration URL of http://localhost
我一直在尝试与 SymmetricDS 进行条件同步。问题是,无论我做什么,它都会忽略应该有条件同步的表,而只会无条件同步表。 所以我想,我错误地使用了这些条件。我在当前版本的用户指南中找不到此 Ma
我一直在从事一个涉及使用对称 ds 同步两个数据库的小项目。我的数据库之一是 mysql,另一个是 h2。我希望我的程序在单击时更新 h2 数据库。但是,更新函数会生成类似以下内容的错误: org.h
我是一名优秀的程序员,十分优秀!