PostgreSQL的:SSL证书错误无法获取本地颁发者证书

问题描述:

在PostgreSQL里,每当我执行API URL中包含PostgreSQL的:SSL证书错误无法获取本地颁发者证书

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

我得到一个错误

SSL证书与查询 安全连接问题:无法获得本地发行人证书

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

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

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

请让我知道它的可能的解决方案。

的几个问题...

首先,您使用此模块的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()

对于使用自签名证书端点值,我想你会想包括支持忽略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,因为该模块的作者提出了几个很好的观点。