interface: fix connecting to new servers using self-signed certs
got broken in 6ec1578a90
This commit is contained in:
@@ -177,7 +177,8 @@ class _Connector(aiorpcx.Connector):
|
|||||||
try:
|
try:
|
||||||
return await super().create_connection()
|
return await super().create_connection()
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
raise ConnectError(e)
|
# note: using "from e" here will set __cause__ of ConnectError
|
||||||
|
raise ConnectError(e) from e
|
||||||
|
|
||||||
|
|
||||||
def deserialize_server(server_str: str) -> Tuple[str, str, str]:
|
def deserialize_server(server_str: str) -> Tuple[str, str, str]:
|
||||||
@@ -254,11 +255,11 @@ class Interface(Logger):
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
await self.open_session(ca_ssl_context, exit_early=True)
|
await self.open_session(ca_ssl_context, exit_early=True)
|
||||||
except ssl.SSLError as e:
|
except ConnectError as e:
|
||||||
if e.reason == 'CERTIFICATE_VERIFY_FAILED':
|
cause = e.__cause__
|
||||||
|
if isinstance(cause, ssl.SSLError) and cause.reason == 'CERTIFICATE_VERIFY_FAILED':
|
||||||
# failures due to self-signed certs are normal
|
# failures due to self-signed certs are normal
|
||||||
return False
|
return False
|
||||||
# e.g. too weak crypto
|
|
||||||
raise
|
raise
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user