Marklogic 8 http-get到AWS API网关导致SSL握手失败

时间:2016-09-14 18:53:30

标签: amazon-web-services ssl marklogic aws-api-gateway tls1.2

我想编写一个调用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错误。 / p>

我尝试过使用其他https://网址(例如适用于AWS S3的网址)并且它们有效,因此它与API网关执行SSL / TLS的方式有所不同。

任何想法是什么问题?

1 个答案:

答案 0 :(得分:2)

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

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