我正在尝试将Opscenter警报发布到AWS Api Gateway端点(格式为https://xxxxxxxx.execute-api.us-east-1.amazonaws.com/opscenteralerts/alerts)。我能够从烧瓶服务器发布到api网关端点。我也尝试将opscenter警报发布到另一个web服务器。但是我无法将其发布到API网关端点。我已经检查了我的安全组,并且API端点也是打开的。我遗漏了什么?
以下是opscenterd.log中的堆栈跟踪
2017-07-04 18:58:06,651 [opscenterd] ERROR: [Errno 1] Received fatal alert: handshake_failure
File "/usr/share/opscenter/lib/py/twisted/internet/selectreactor.py", line 149, in _doReadOrWrite
why = getattr(selectable, method)()
File "/usr/share/opscenter/lib/py/twisted/internet/legacy_ssl.py", line 645, in doConnect
self._connectDone()
File "/usr/share/opscenter/lib/py/twisted/internet/legacy_ssl.py", line 1182, in _connectDone
self.startTLS(self.ctxFactory)
File "/usr/share/opscenter/lib/py/twisted/internet/legacy_ssl.py", line 542, in startTLS
if LegacyConnection.startTLS(self, ctx, client):
File "/usr/share/opscenter/lib/py/twisted/internet/tcp.py", line 50, in startTLS
self.socket = JConnection(ctx.getContext(), self.socket, False)
File "/usr/share/opscenter/lib/py/JythonSSLWrapper.py", line 88, in __init__
self._wrapped_socket = self._create_client_socket(sock)
File "/usr/share/opscenter/lib/py/JythonSSLWrapper.py", line 107, in _create_client_socket
return self._context.wrap_socket(sock)
File "/usr/share/opscenter/lib/jvm/jython-standalone-2.7.0.9.jar/Lib/ssl.py", line 991, in wrap_socket
return SSLSocket(sock=sock, server_side=server_side,
File "/usr/share/opscenter/lib/jvm/jython-standalone-2.7.0.9.jar/Lib/ssl.py", line 521, in __init__
self.do_handshake()
File "/usr/share/opscenter/lib/jvm/jython-standalone-2.7.0.9.jar/Lib/ssl.py", line 630, in do_handshake
self._sock._handle_channel_future(handshake, "SSL handshake", wait=True)
File "/usr/share/opscenter/lib/jvm/jython-standalone-2.7.0.9.jar/Lib/_socket.py", line 365, in handle_exception
raise _map_exception(jlx)
(MainThread)
答案 0 :(得分:0)
API网关的大多数SSL握手错误都是由不支持SNI的客户端引起的。 API网关需要SNI,没有它就无法工作。 Opscenter是否支持SNI?