From 2bfcf0ff02881ebcd49aef38c00fc511cc4011b9 Mon Sep 17 00:00:00 2001 From: alexpolo1 Date: Thu, 11 Jun 2026 13:53:54 +0200 Subject: [PATCH] fix: patch ssl.load_default_certs to handle corrupted Windows cert store OpenSSL 3.x + corrupted Windows cert store causes aiohttp to crash at import time. Monkey-patch ssl.SSLContext.load_default_certs to fall back to certifi when Windows store fails. --- src/main.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main.py b/src/main.py index b8365cc..fac6df7 100644 --- a/src/main.py +++ b/src/main.py @@ -10,6 +10,23 @@ if sys.platform == "win32": if os.path.isdir(_d): os.add_dll_directory(_d) +# Fix: OpenSSL 3.x + corrupted Windows cert store causes aiohttp to crash at import time. +# Monkey-patch ssl.create_default_context to skip Windows cert store loading. +if sys.platform == "win32": + import ssl + _orig_load_default_certs = ssl.SSLContext.load_default_certs + def _safe_load_default_certs(self, purpose=ssl.Purpose.CLIENT_AUTH): + try: + _orig_load_default_certs(self, purpose) + except ssl.SSLError: + # Windows cert store is corrupted, use certifi instead + try: + import certifi + self.load_verify_locations(certifi.where()) + except Exception: + pass # No certs available, continue without verification + ssl.SSLContext.load_default_certs = _safe_load_default_certs + from dataclasses import dataclass from input_layer import keyboard from beautifultable import BeautifulTable