我想编写一个调用AWS API网关终端节点的xquery模块。我运行如下代码:

xdmp:http-get("https://gxkhphr091.execute-api.eu-west-1.amazonaws.com/prod",
        <options xmlns="xdmp:http">
          <allow-sslv3>false</allow-sslv3>
          <allow-tls>true</allow-tls>
        </options>)


我得到的是:

[1.0-ml] SVC-SOCCONN: xdmp:http-get("https://gxkhphr091.execute-api.eu-west-1.amazonaws.com/prod", <options xmlns="xdmp:http"/>)
-- Socket connect error: SSL_connect 192.168.15.17:59789-52.85.63.117:443: sslv3 alert handshake failure (0x14077410)


端点不需要客户端认证。从同一主机执行CURL可以正常工作:

curl -v https://gxkhphr091.execute-api.eu-west-1.amazonaws.com/prod


我读到AWS API Gateway不再支持SSLv3-它需要TLS,这就是为什么我使用上述选项的原因,但是我也尝试了其他选项组合,它们都导致上述同一SSLv3错误。

我已经尝试过使用其他https:// URL,例如适用于AWS S3的URL,并且它们可以工作,因此API Gateway执行SSL / TLS的方式与之不同。

任何想法是什么问题?

最佳答案

从我在其他地方发现的情况来看,这可能与客户端中缺少SNI支持有关。 API网关需要支持SNI的HTTP客户端。

https://en.wikipedia.org/wiki/Server_Name_Indication

10-08 06:43
查看更多