【问题标题】:Amazon 500150 Error setting closing connection General SSLEngineAmazon 500150 错误设置关闭连接 General SSLEngine
【发布时间】:2016-08-05 16:19:24
【问题描述】:

连接到 Amazon RedShift 时,我收到以下错误:

2016-04-14 13:49:30 ERROR SQL Exception when connecting [Amazon](500150) Error setting/closing connection: General SSLEngine problem.
java.sql.SQLException: [Amazon](500150) Error setting/closing connection: General SSLEngine problem.
    at workbench.db.DbDriver.connect(DbDriver.java:546)
    at workbench.db.ConnectionMgr.connect(ConnectionMgr.java:244)
    at workbench.db.ConnectionMgr.getConnection(ConnectionMgr.java:172)
    at workbench.gui.components.ConnectionSelector.doConnect(ConnectionSelector.java:227)
    at workbench.gui.components.ConnectionSelector$1.run(ConnectionSelector.java:131)
Caused by: java.sql.SQLException: [Amazon](500150) Error setting/closing connection: General SSLEngine problem.
    at com.amazon.redshift.client.PGClient.<init>(Unknown Source)
    at com.amazon.redshift.core.PGJDBCConnection.connect(Unknown Source)
    at com.amazon.jdbc.common.BaseConnectionFactory.doConnect(Unknown Source)
    at com.amazon.jdbc.common.AbstractDriver.connect(Unknown Source)
    at workbench.db.DbDriver.connect(DbDriver.java:513)
    at workbench.db.ConnectionMgr.connect(ConnectionMgr.java:244)
    at workbench.db.ConnectionMgr.getConnection(ConnectionMgr.java:172)
    at workbench.gui.components.ConnectionSelector.doConnect(ConnectionSelector.java:227)

我正在使用 SQL Workbench J 连接到数据库系统。这里的奇怪之处在于两天前连接工作正常。这个问题不知从何而来。有什么想法吗??

我们正在按照设置指南中编写的确切步骤将证书添加到 Java。

https://community.boomi.com/docs/DOC-2381

我这里有什么遗漏吗?

更新

我的 Redshift 数据库配置了 SSL。我们使用 SQL Workbench J (http://www.sql-workbench.net/) 客户端连接到该数据库。现在的问题是,每次我们尝试连接时,都会收到我提到的错误。

以下是我们的网址格式:

jdbc:redshift://hostname:5439/dbname?ssl=true&sslmode=verify-full

【问题讨论】:

  • 你能再解释一下吗?
  • 是的。我已更新问题详情。

标签: amazon-web-services ssl amazon-redshift


【解决方案1】:

当我遵循 cfregly 在 databricks 论坛上提供的解决方案时,它对我有用。请按照以下 URL 获取此解决方案:

https://forums.databricks.com/questions/867/ssl-connection-issues-with-redshift.html

请尝试在连接 URL 字符串中附加 sslfactory 值,如下所示 - 它可能会起作用。

ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

【讨论】:

  • 这个解决方案对我有用。我有一些确切的问题,当我添加“&sslfactory=org.postgresql.ssl.NonValidatingFactory shareeditflag”时,我能够连接到 Redshift DW
  • 请注意,这会产生潜在的安全问题,因为您(客户端)不再验证服务器的身份。
【解决方案2】:

请在没有服务器证书的情况下添加以下内容

ssl=true&sslfactory=com.amazon.redshift.ssl.NonValidatingFactory

以下是 sslfactory 的可能值

com.amazon.redshift.ssl.NonValidatingFactory
org.postgresql.ssl.NonValidatingFactory

请看http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-options.html

【讨论】:

  • 此解决方案也适用于 Jetbrains IDE 的数据源连接。在 IDE 的“数据源和驱动程序”部分中为 Redshift 驱动程序的“高级”选项卡编辑这些值
【解决方案3】:

试试下面的。

根据环境变量 JAVA_HOME 的 Java 安装运行密钥库密钥工具(您可能有多个 Java 安装,因此请使用默认值)。使用 JRE 附带的默认 cacerts 密钥库,其密码为“changeit”。您需要下载Redshift Certificate

然后安装证书例如:

C:\Program Files\Java\jdk1.8.0_25\jre\bin>keytool.exe -keystore "C:\Program Files\Java\jdk1.8.0_25\jre\lib\security\cacerts" -import -alias redshift -file redshift-ssl-ca-cert.pem

它会提示您输入密码(“changeit”),然后应该说已添加密钥。如果失败可能是因为您不是管理员用户,所以如果在 linux 中使用 sudo 或在 windows 中以管理员身份打开命令窗口。

使用 cacerts 密钥库和上面输入的密码启动 MYSQL Workbench,例如:

C:\apps\SQL-Workbench-Build118>java -Djavax.net.ssl.trustStore="C:\Program Files\Java\jdk1.8.0_25\jre\lib\security\cacerts" -Djavax.net.ssl.trustStorePassword=changeit -jar sqlworkbench.jar

您应该可以使用上面的 URL,它现在应该可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 2020-08-11
    相关资源
    最近更新 更多