diff --git a/python_ml/mikrotik_manager.py b/python_ml/mikrotik_manager.py index 69d0650..74a3f00 100644 --- a/python_ml/mikrotik_manager.py +++ b/python_ml/mikrotik_manager.py @@ -5,6 +5,7 @@ Più veloce e affidabile di SSH per 10+ router import httpx import asyncio +import ssl from typing import List, Dict, Optional from datetime import datetime import hashlib @@ -34,11 +35,27 @@ class MikroTikManager: "Authorization": f"Basic {auth}", "Content-Type": "application/json" } + + # SSL context per MikroTik (supporta protocolli TLS legacy) + ssl_context = None + if protocol == "https": + ssl_context = ssl.create_default_context() + ssl_context.check_hostname = False + ssl_context.verify_mode = ssl.CERT_NONE + # Abilita protocolli TLS legacy per MikroTik (TLS 1.0+) + try: + ssl_context.minimum_version = ssl.TLSVersion.TLSv1 + except AttributeError: + # Python < 3.7 fallback + pass + # Abilita cipher suite legacy per compatibilità + ssl_context.set_ciphers('DEFAULT@SECLEVEL=1') + self.clients[key] = httpx.AsyncClient( base_url=f"{protocol}://{router_ip}:{port}", headers=headers, timeout=self.timeout, - verify=False # Disable SSL verification for self-signed certs + verify=ssl_context if ssl_context else True ) return self.clients[key]