Files
Projektarbeit-MYP/backend/regenerate_ssl.bat

131 lines
5.0 KiB
Batchfile

@echo off
echo =========================================================
echo MYP SSL BROWSER-KOMPATIBILITAETS-FIX
echo Loest ERR_SSL_KEY_USAGE_INCOMPATIBLE Fehler
echo =========================================================
echo.
REM Pruefe ob SSL-Verzeichnis existiert
if not exist "ssl" (
echo Erstelle SSL-Verzeichnis...
mkdir ssl
)
REM Losche alte Zertifikate
if exist "ssl\cert.pem" (
echo Erstelle Backup der alten Zertifikate...
if not exist "ssl\backup" mkdir ssl\backup
copy "ssl\cert.pem" "ssl\backup\cert_backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%.pem" >nul 2>&1
copy "ssl\key.pem" "ssl\backup\key_backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%.pem" >nul 2>&1
echo Backup erstellt.
)
REM Pruefe ob OpenSSL verfuegbar ist
openssl version >nul 2>&1
if errorlevel 1 (
echo.
echo FEHLER: OpenSSL ist nicht installiert oder nicht im PATH!
echo.
echo Bitte installiere OpenSSL:
echo 1. Lade OpenSSL fuer Windows herunter: https://slproweb.com/products/Win32OpenSSL.html
echo 2. Oder verwende das bestehende SSL-Modul mit Python
echo.
echo Alternative: Verwende das Python-basierte SSL-Fix Tool:
echo python -c "from utils.ssl_config import ensure_ssl_certificates; ensure_ssl_certificates('.', True)"
echo.
pause
exit /b 1
)
echo OpenSSL gefunden. Generiere browser-kompatible SSL-Zertifikate...
echo.
REM Erstelle browser-kompatible OpenSSL-Konfiguration
echo [req] > ssl\openssl_browser_fix.conf
echo distinguished_name = req_distinguished_name >> ssl\openssl_browser_fix.conf
echo req_extensions = v3_req >> ssl\openssl_browser_fix.conf
echo prompt = no >> ssl\openssl_browser_fix.conf
echo. >> ssl\openssl_browser_fix.conf
echo [req_distinguished_name] >> ssl\openssl_browser_fix.conf
echo C = DE >> ssl\openssl_browser_fix.conf
echo ST = Baden-Wuerttemberg >> ssl\openssl_browser_fix.conf
echo L = Stuttgart >> ssl\openssl_browser_fix.conf
echo O = Mercedes-Benz AG >> ssl\openssl_browser_fix.conf
echo OU = MYP Druckerverwaltung >> ssl\openssl_browser_fix.conf
echo CN = m040tbaraspi001 >> ssl\openssl_browser_fix.conf
echo. >> ssl\openssl_browser_fix.conf
echo [v3_req] >> ssl\openssl_browser_fix.conf
echo basicConstraints = critical, CA:FALSE >> ssl\openssl_browser_fix.conf
echo keyUsage = critical, digitalSignature, keyEncipherment, keyAgreement >> ssl\openssl_browser_fix.conf
echo extendedKeyUsage = critical, serverAuth, clientAuth >> ssl\openssl_browser_fix.conf
echo subjectAltName = critical, @alt_names >> ssl\openssl_browser_fix.conf
echo nsCertType = server >> ssl\openssl_browser_fix.conf
echo nsComment = "MYP SSL Fix - ERR_SSL_KEY_USAGE_INCOMPATIBLE Loesung" >> ssl\openssl_browser_fix.conf
echo. >> ssl\openssl_browser_fix.conf
echo [alt_names] >> ssl\openssl_browser_fix.conf
echo DNS.1 = localhost >> ssl\openssl_browser_fix.conf
echo DNS.2 = *.localhost >> ssl\openssl_browser_fix.conf
echo DNS.3 = m040tbaraspi001 >> ssl\openssl_browser_fix.conf
echo DNS.4 = m040tbaraspi001.local >> ssl\openssl_browser_fix.conf
echo DNS.5 = m040tbaraspi001.de040.corpintra.net >> ssl\openssl_browser_fix.conf
echo DNS.6 = *.de040.corpintra.net >> ssl\openssl_browser_fix.conf
echo IP.1 = 127.0.0.1 >> ssl\openssl_browser_fix.conf
echo IP.2 = ::1 >> ssl\openssl_browser_fix.conf
echo IP.3 = 0.0.0.0 >> ssl\openssl_browser_fix.conf
echo OpenSSL-Konfiguration erstellt.
REM Generiere Private Key
echo Generiere Private Key (RSA 2048)...
openssl genrsa -out ssl\key.pem 2048
if errorlevel 1 (
echo FEHLER: Private Key Generierung fehlgeschlagen!
pause
exit /b 1
)
echo Private Key generiert.
REM Generiere browser-kompatibles Zertifikat
echo Generiere browser-kompatibles Zertifikat...
openssl req -new -x509 -key ssl\key.pem -out ssl\cert.pem -days 365 -config ssl\openssl_browser_fix.conf -extensions v3_req -sha256
if errorlevel 1 (
echo FEHLER: Zertifikat-Generierung fehlgeschlagen!
pause
exit /b 1
)
echo Browser-kompatibles Zertifikat generiert.
REM Aufraumen
del ssl\openssl_browser_fix.conf >nul 2>&1
REM Validierung
echo.
echo =========================================================
echo BROWSER-KOMPATIBILITAETS-VALIDIERUNG
echo =========================================================
echo Pruefe Zertifikat-Extensions...
openssl x509 -in ssl\cert.pem -noout -text | findstr /C:"Digital Signature" /C:"Key Encipherment" /C:"TLS Web Server Authentication" /C:"Subject Alternative Name" /C:"CA:FALSE"
echo.
echo =========================================================
echo SSL-FIX ERFOLGREICH ABGESCHLOSSEN!
echo =========================================================
echo.
echo Naechste Schritte:
echo 1. Browser-Cache vollstaendig leeren:
echo - Chrome/Edge: Strg+Shift+Del, "Gesamte Zeit", alle Optionen
echo - Firefox: Strg+Shift+Del, "Alles" auswaehlen
echo.
echo 2. MYP-Anwendung neu starten
echo.
echo 3. https://localhost:5000 aufrufen
echo.
echo 4. Bei SSL-Warnung: "Erweitert" - "Weiter zu localhost (unsicher)"
echo.
echo Der Fehler ERR_SSL_KEY_USAGE_INCOMPATIBLE sollte behoben sein!
echo.
echo Zertifikat gespeichert in: ssl\cert.pem
echo Private Key gespeichert in: ssl\key.pem
echo.
pause