【问题标题】:Postgresql : SSL certificate error unable to get local issuer certificatePostgresql:SSL证书错误无法获取本地颁发者证书
【发布时间】:2017-09-13 18:07:11
【问题描述】:

在 PostgreSQL 中,每当我执行带有查询的安全连接的 API URL 时 如下所示

select * 
from http_get('https://url......');

我收到一个错误

SSL 证书问题:无法获取本地颁发者证书

为此,我已经在我的 azure 数据库安装文件中的以下路径中放置了一个 SSL 文件夹

C:\Program Files\PostgreSQL\9.6\ssl\certs

我应该怎么做才能摆脱这种情况?是否有任何可用的 SSL 扩展,或者我是否需要更改配置或任何其他工作?

请告诉我可能的解决方案。

【问题讨论】:

    标签: postgresql azure http ssl ssl-certificate


    【解决方案1】:

    几个问题...

    首先,您使用的是这个贡献模块:https://github.com/pramsey/pgsql-http 吗?

    https://url....... 提供服务的服务器是否使用自签名(或无效)证书?

    如果这两个问题的答案是“是”,那么如果不进行一些修改,您可能无法使用该 contrib 模块。我不确定您在 Azure 中对 PostgreSQL 的访问有多大限制,但如果您可以安装自己的基于 C 的 contrib 模块,那么会有一些希望...

    pgsql-http 只公开某些 CURLOPTs(见:https://github.com/pramsey/pgsql-http#curl-options)值,这些值可以用 http_set_curlopt() 设置

    对于使用自签名证书的端点,我希望您希望包含对忽略 SSL 错误的支持的 CURLOPT 是 CURLOPT_SSL_VERIFYPEER

    如果存在 SSL/TLS 协议或密码不匹配等其他问题,则可以修补其他 CURLOPT,但如果不自定义 contrib 模块,这些也是不可用的。

    我不认为你有什么

    C:\Program Files\PostgreSQL\9.6\ssl\certs
    

    文件夹对 http_get() 功能有任何影响。

    如果你不想自己动手编译和安装自定义贡献模块,你可以在维护者的 github 页面上创建一个问题,看看它是否被拾取。

    您也可以看看https://github.com/pramsey/pgsql-http#why-this-is-a-bad-idea,因为该模块的作者提出了几个非常好的观点。

    【讨论】:

      猜你喜欢
      • 2016-04-20
      • 2015-03-18
      • 2011-12-26
      • 2016-07-06
      • 2018-06-11
      相关资源
      最近更新 更多