""" SSL-Manager für Mercedes-Benz MYP Platform Erstellt selbstsignierte SSL-Zertifikate für Entwicklung """ import os import subprocess from datetime import datetime from utils.logging_config import get_logger logger = get_logger("ssl_manager") class SSLManager: """Verwaltet SSL-Zertifikate für die MYP Platform""" def __init__(self): self.cert_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), "certs") self.cert_path = os.path.join(self.cert_dir, "myp.crt") self.key_path = os.path.join(self.cert_dir, "myp.key") def generate_mercedes_certificate(self) -> bool: """ Erstellt ein selbstsigniertes SSL-Zertifikat für Mercedes-Benz. Returns: bool: True wenn erfolgreich, False bei Fehler """ try: # Stelle sicher, dass das Zertifikatsverzeichnis existiert os.makedirs(self.cert_dir, exist_ok=True) # OpenSSL-Befehl für selbstsigniertes Zertifikat cmd = [ "openssl", "req", "-x509", "-newkey", "rsa:4096", "-keyout", self.key_path, "-out", self.cert_path, "-days", "365", "-nodes", "-subj", "/C=DE/ST=Baden-Wuerttemberg/L=Stuttgart/O=Mercedes-Benz Group AG/OU=MYP Development/CN=localhost" ] # Führe OpenSSL-Befehl aus result = subprocess.run(cmd, capture_output=True, text=True) if result.returncode == 0: logger.info(f"✅ SSL-Zertifikat erfolgreich erstellt: {self.cert_path}") return True else: logger.error(f"❌ Fehler beim Erstellen des SSL-Zertifikats: {result.stderr}") return False except FileNotFoundError: logger.error("❌ OpenSSL nicht gefunden. Bitte OpenSSL installieren.") return False except Exception as e: logger.error(f"❌ Unerwarteter Fehler beim Erstellen des SSL-Zertifikats: {str(e)}") return False # Globale Instanz ssl_manager = SSLManager()