确定使用Oracle utl_http执行https post所需的证书

确定使用Oracle utl_http执行https post所需的证书,oracle,security,plsql,ssl-certificate,postman,Oracle,Security,Plsql,Ssl Certificate,Postman,短篇小说 我正在尝试使用Oracle中的utl_http实用程序从PL/SQL脚本发送POST请求。我已经能够使用http发送请求,但不能使用https。我已经将我认为必要的证书添加到Oracle钱包中,我相信它们正在被导入和使用(但老实说,这有点难以验证)。我目前的假设是,来自DB服务器的调用正在通过代理服务器,而这不知怎么搞砸了https/证书功能的某些部分 支持证据(可能吗?):我试图调用(POST请求)一个虚拟服务。同样,我使用http,但不是https,后者会导致证书验证错误 然后,我

短篇小说
我正在尝试使用Oracle中的utl_http实用程序从PL/SQL脚本发送POST请求。我已经能够使用http发送请求,但不能使用https。我已经将我认为必要的证书添加到Oracle钱包中,我相信它们正在被导入和使用(但老实说,这有点难以验证)。我目前的假设是,来自DB服务器的调用正在通过代理服务器,而这不知怎么搞砸了https/证书功能的某些部分

支持证据(可能吗?):我试图调用(POST请求)一个虚拟服务。同样,我使用http,但不是https,后者会导致证书验证错误

然后,我尝试使用复制行为,这基本上会产生相同的结果,除非我摆弄设置:

初始邮差结果:

没有得到任何回应

连接到…时出错

禁用SSL验证
在Post man设置下,我关闭了SSL证书验证,然后重试。这次,我得到了一个
200ok
响应,并确认webhook收到了post请求罚款

很明显,该错误是由于缺少证书造成的,但我无法确定是哪个,或者如何配置它。我的假设是,如果我可以从Postman处为webhook url使用此功能(而不禁用证书验证),那么我以后也应该能够从PL/SQL中使用它

当我在浏览器中查看webhook站点并检查证书时,webhook证书是最低的证书(叶节点?)。上面有一个与我工作的公司相关的中间证书,然后是一个与公司相关的根证书。根节点的名称类似于“公司代理服务器CA”——因此我假设代理以某种方式操纵我的请求,并在此处插入自己的证书

我尝试下载所有这些证书并将它们导入我的证书库,以及在邮递员设置下(在证书下)以各种组合导入它们,但似乎没有任何区别;所有使用HTTPS发布的尝试都会在我的邮递员控制台中产生以下错误:

张贴

错误:无法验证第一个证书

如果您有任何关于如何解决此问题的想法,或者至少获得有关如何操作的更多信息,我们将不胜感激。

在Postman中关闭“SSL证书验证”仅意味着it(即Postman)在发出请求时不会检查SSL证书的有效性。这意味着它只会按原样发送证书。因为如果设置为ON,您的连接将失败,这意味着邮递员无法验证您的证书的有效性

这很可能是您试图发布到的实际服务的情况,他们无法验证证书。这项服务在你们公司网络之外吗?它是公共的还是你们公司所有的?该服务在哪里托管?他们需要什么证书

顺便说一句,TLS客户端证书是作为建立SSL连接的一部分发送的,而不是作为HTTP请求的一部分发送的。TLS握手(以及客户端和服务器证书的交换/验证)发生在发送任何HTTP消息之前

我想这可能是一个端口阻塞问题。

您说过。。。“公司代理服务器CA”-因此我假设代理以某种方式操纵我的请求,并在此处插入自己的证书

这意味着您的客户端软件需要公司代理服务器CA位于其受信任证书列表中。如果该客户的名单是oracle钱包的名单

这是关于如何做到这一点

此外,如果运行postman的系统具有非基于oracle的钱包受信任证书(可能是操作系统?),则必须执行类似于将信任添加到工作站上的帐户的操作

以使代理服务器证书受信任


一旦建立连接的证书根据所使用的客户端的有效配置具有信任根,您就可以验证该证书。

几个可能的问题:

  • 服务器实际上不支持HTTPS。将浏览器连接到您发布到的URL,然后查看是否收到响应。(看起来您已经这样做了,但为了完整性,我正在对其进行记录。)
  • 服务器使用服务器名称指示(SNI)扩展来确定要发回的证书链,但您的发布客户端不发送该扩展。您可以通过查找要发布到的主机的IP来识别这种情况,然后在浏览器中查找(这里显然使用IP,而不是文本字符串'nnn.nnn.nnn.nnn'),并检查它返回的证书链。如果与步骤1中得到的不同,这就是您的问题,您需要弄清楚如何在Oracle PL/SQL客户机中获得SNI支持,或者如何在该主机名上公开POST端点。(或者,您可以使用这些证书为Oracle Wallet充值,但证书中的主机名可能与您连接的主机名不匹配。)
  • 你有一个代理人挡道。我不认为这是怎么回事,因为这基本上只会导致问题,如果你正在做客户端证书认证。(如果这是问题或情况,您需要将这些证书导入到您的受信任钱包中;您还需要确保您从中发布的服务器正在通过同一个代理。否则,您需要确保该代理的证书颁发机构确保机器实际运行