2016-09-14 4 views
0

Я хочу написать модуль xquery, который вызывает конечную точку шлюза AWS API. Я побежал код вроде следующего:Marklogic 8 http-get to AWS API gateway приводит к сбою связи SSL

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 шлюз не поддерживает SSLv3 больше - он требует TLS, поэтому я использовал вышеуказанные варианты, но я также попробовал другие комбинации параметров, и все они приводят к той же ошибке SSLv3 выше.

Я пробовал с другими https: // URL-адресами, например, для AWS S3, и они работают, так что это что-то не так, как API Gateway делает SSL/TLS.

Любые идеи в чем проблема?

ответ

2

Из того, что я нахожу в другом месте, это может быть связано с отсутствием поддержки SNI в клиенте. API Gateway требует HTTP-клиентов, поддерживающих SNI.

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