我想编写一个调用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