首页 文章

Postgresql:SSL证书错误无法获得本地颁发者证书

提问于
浏览
1

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

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

我收到一个错误

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

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

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

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

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

1 回答

  • 1

    几个问题...

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

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

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

    pgsql-http仅公开某些CURLOPT(参见:https://github.com/pramsey/pgsql-http#curl-options)值,这些值可通过http_set_curlopt()设置

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

    如果还有其他问题,如SSL / TLS协议或密码不匹配,还有其他可以修补的CURLOPT,但如果没有自定义contrib模块,那些也不可用 .

    我觉得你没有

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

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

    如果您不想亲自编译和安装自定义contrib模块,可以在维护者的github页面上创建一个问题,看看它是否被拾取 .

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

相关问题