连接到 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
答案 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
您应该可以使用上面的网址,现在应该可以使用。