mivita/dev/2026-05-13-dhl-modul/legacy/DHL_LIVE_SERVER_FIX.md

3 KiB

DHL Live-Server SSL-Problem - Erweiterte Lösung

Problem

Der SSL-Fehler cURL error 56: OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading tritt nur auf dem Live-Server auf, nicht auf dem Testserver.

Erweiterte Lösung implementiert

1. Multi-Methoden-Fallback

Die DhlClient Klasse versucht jetzt automatisch mehrere Verbindungsmethoden:

  1. Enhanced SSL - Optimierte SSL-Konfiguration mit HTTP/2
  2. Relaxed SSL - Fallback mit deaktivierter SSL-Verifikation
  3. Direct cURL - Direkte cURL-Implementierung als letzter Ausweg

2. Erweiterte Debug-Logs

  • Server-Umgebungsinformationen werden automatisch geloggt
  • Detaillierte Fehlermeldungen für jede Verbindungsmethode
  • PHP, cURL und OpenSSL-Versionsinformationen

3. Live-Server-spezifische Konfiguration

Für problematische Live-Server (.env):

# DHL Live-Konfiguration mit SSL-Fallback
DHL_BASE_URL=https://api-eu.dhl.com
DHL_TEST_MODE=false
DHL_SANDBOX=false

# SSL-Fallback-Optionen für Live-Server
DHL_SSL_VERIFY_PEER=false
DHL_SSL_VERIFY_HOST=false
DHL_SSL_VERSION=TLSv1_2
DHL_TIMEOUT=30
DHL_CONNECT_TIMEOUT=15

# Ihre Live-Daten
DHL_API_KEY=your_live_api_key
DHL_USERNAME=your_live_username
DHL_PASSWORD=your_live_password

4. Test der erweiterten Lösung

# Konfiguration neu laden
php artisan config:clear

# Test mit Debug-Logs
php artisan tinker
$settingController = new \App\Http\Controllers\SettingController();
$dhlConfig = $settingController->getDhlConfig();
$dhlClient = new \Acme\Dhl\Support\DhlClient(
    $dhlConfig['base_url'],
    $dhlConfig['api_key'],
    $dhlConfig['username'],
    $dhlConfig['password']
);

// Test mit erweiterten Debug-Logs
$result = $dhlClient->testConnection();
echo $result ? 'SUCCESS' : 'FAILED';

5. Log-Analyse

Nach dem Test finden Sie in den Laravel-Logs (storage/logs/laravel.log):

  • Server Environment Debug Info - Umgebungsdetails
  • DHL API connection test - trying [Method] - Jede versuchte Methode
  • DHL API connection test successful with [Method] - Erfolgreiche Methode
  • DHL API connection test failed with [Method] - Fehlgeschlagene Methoden

6. Häufige Live-Server-Probleme

Problem: Ältere OpenSSL-Version

DHL_SSL_VERSION=TLSv1_1

Problem: Firewall/Proxy

DHL_TIMEOUT=60
DHL_CONNECT_TIMEOUT=30

Problem: SSL-Zertifikatsprobleme

DHL_SSL_VERIFY_PEER=false
DHL_SSL_VERIFY_HOST=false

7. Monitoring

Die Lösung loggt automatisch:

  • Welche Verbindungsmethode erfolgreich war
  • Server-Umgebungsdetails
  • Detaillierte Fehlermeldungen

8. Rollback-Option

Falls die erweiterte Lösung Probleme verursacht, können Sie zur ursprünglichen Version zurückkehren, indem Sie die testConnection() Methode in DhlClient.php vereinfachen.

Wichtige Hinweise

  • Die Lösung ist vollständig abwärtskompatibel
  • Alle bestehenden Konfigurationen funktionieren weiterhin
  • Die Fallback-Methoden werden nur bei Bedarf verwendet
  • Debug-Logs helfen bei der Problemdiagnose