diff --git a/electrum/interface.py b/electrum/interface.py index 0398d3f9c..d4b1c1021 100644 --- a/electrum/interface.py +++ b/electrum/interface.py @@ -443,10 +443,14 @@ class Interface(Logger): await self.open_session(ca_ssl_context, exit_early=True) except ConnectError as e: cause = e.__cause__ - if isinstance(cause, ssl.SSLError) and cause.reason == 'CERTIFICATE_VERIFY_FAILED': - # failures due to self-signed certs are normal + if (isinstance(cause, ssl.SSLCertVerificationError) + and cause.reason == 'CERTIFICATE_VERIFY_FAILED' + and cause.verify_code == 18): # "self signed certificate" + # Good. We will use this server as self-signed. return False + # Not good. Cannot use this server. raise + # Good. We will use this server as CA-signed. return True async def _try_saving_ssl_cert_for_first_time(self, ca_ssl_context):