与Postgres的CF8 SSL连接失败

时间:2011-03-22 17:12:33

标签: java postgresql coldfusion ssl-certificate keystore

我正在尝试从ColdFusion 8 Enterprise客户端到Redhat 5 Postgres服务器的SSL连接。另一方设立了Postgres并向我发送了证书。

  1. 我已成功将 root.crt 导入 E:\ JRun4 \ jre \ lib \ security \ cacerts 并重新启动该服务。
  2. Postgres pg_hba.conf文件具有客户端IP,并且无需SSL即可正常连接
  3. Postgresql.conf有 ssl = on
  4. 服务器端证书是根据http://www.postgresql.org/docs/8.2/static/ssl-tcp.html创建的,并且假设已正确完成。
  5. 启用SSL后,我得到 org.postgresql.util.PSQLException:连接尝试失败。从我所做的搜索中产生的信息很少。

    JDBC URL:jdbc:postgresql://x.x.x.x / main?ssl = true
    类:org.postgresql.Driver

    如果错误源位于我的终端或服务器端,可以做些什么来查看/测试?

3 个答案:

答案 0 :(得分:2)

首先要解决的问题是:

  1. 您可以使用psql连接启用SSL吗?

  2. postgresql日志中有什么值得关注的内容吗?

  3. 如果这不起作用,有没有办法可以根据root ca的签名测试证书?

  4. 如果失败了,我唯一能想到的就是跟踪客户端并确切地看到SSL库中的失败位置。

答案 1 :(得分:2)

对于证书问题,请将&sslfactory=org.postgresql.ssl.NonValidatingFactory添加到您的jdbc网址。有关详细信息,请参阅https://jdbc.postgresql.org/documentation/91/ssl-client.html

答案 2 :(得分:1)

我找到了解决这个问题的笔记。请注意,驱动器和文件夹路径可能与您的设置不同。

  1. 将server.crt.der复制到目标服务器
  2. 在目标服务器中打开命令窗口,然后转到E:\ Jrun4 \ jre \ bin \
  3. 输入以下命令:keytool -importcert -alias postgres -keystore e:\jrun4\jre\lib\security\cacerts -file c:\location\of\server.crt -storepass changeit
  4. 它会提示您是否应该信任此证书;回答是的。
  5. 要验证是否已成功安装,请输入:keytool -list -alias postgres -keystore e:\jrun4\jre\lib\security\cacerts -storepass changeit。如果成功,您将看到通过该别名返回的单个列表,否则将说没有找到
  6. 存储证书后,您可以从服务器中删除实际的证书文件
  7. 在客户端计算机上重新启动ColdFusion服务