Amazon 500150错误设置关闭连接常规SSLEngine

时间:2016-04-14 08:26:27

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

连接到 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

3 个答案:

答案 0 :(得分:9)

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

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

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

  

SSL =真安培;的 sslfactory = org.postgresql.ssl.NonValidatingFactory

答案 1 :(得分:3)

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

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

以下是sslfactory

的可能值
com.amazon.redshift.ssl.NonValidatingFactory
org.postgresql.ssl.NonValidatingFactory

请参阅SQLFiddle

答案 2 :(得分:0)

请尝试以下操作。

基于环境变量JAVA_HOME的Java安装运行keystore keytool(您可能有多个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

您应该可以使用上面的网址,现在应该可以使用。