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

3.5 KiB

DHL Konfiguration für ältere cURL-Versionen (Live-Server)

Problem identifiziert

Ihr Live-Server verwendet:

  • cURL 7.81.0 (ältere Version)
  • OpenSSL 3.0.2 (ältere Version)
  • PHP 8.2.29

Im Vergleich zu Ihrem Testserver:

  • cURL 8.5.0 (neuere Version)
  • OpenSSL 3.0.13 (neuere Version)
  • PHP 8.4.12

Optimierte Lösung implementiert

1. Automatische cURL-Versionserkennung

Die Lösung erkennt automatisch ältere cURL-Versionen (< 8.0.0) und passt die Konfiguration an:

  • HTTP/2 deaktiviert für ältere cURL-Versionen
  • TCP Keep-Alive aktiviert für bessere Verbindungsstabilität
  • Fresh Connections für jeden Request
  • Optimierte SSL-Handhabung für ältere OpenSSL-Versionen

2. Spezielle Konfiguration für Ihren Live-Server

.env-Konfiguration:

# DHL Live-Konfiguration für ältere cURL-Versionen
DHL_BASE_URL=https://api-eu.dhl.com
DHL_TEST_MODE=false
DHL_SANDBOX=false

# SSL-Konfiguration optimiert für cURL 7.81.0
DHL_SSL_VERIFY_PEER=true
DHL_SSL_VERIFY_HOST=true
DHL_SSL_VERSION=TLSv1_2
DHL_TIMEOUT=30
DHL_CONNECT_TIMEOUT=15

# Ihre Live-Daten
DHL_API_KEY=your_real_live_api_key
DHL_USERNAME=your_real_live_username
DHL_PASSWORD=your_real_live_password

3. Fallback-Optionen für problematische Server

Option A: SSL-Verifikation deaktivieren (falls weiterhin Probleme)

DHL_SSL_VERIFY_PEER=false
DHL_SSL_VERIFY_HOST=false

Option B: Ältere TLS-Version verwenden

DHL_SSL_VERSION=TLSv1_1

Option C: Längere Timeouts

DHL_TIMEOUT=60
DHL_CONNECT_TIMEOUT=30

4. Was die Lösung automatisch macht

Für cURL 7.81.0 (Ihr Live-Server):

  • Verwendet HTTP/1.1 statt HTTP/2
  • Aktiviert TCP Keep-Alive für bessere Verbindungsstabilität
  • Verwendet Fresh Connections für jeden Request
  • Optimiert SSL-Handhabung für OpenSSL 3.0.2

Für cURL 8.5.0+ (Ihr Testserver):

  • Verwendet HTTP/2 wenn verfügbar
  • Standard-Konfiguration für moderne cURL-Versionen

5. Test der optimierten 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']
);

$result = $dhlClient->testConnection();
echo $result ? 'SUCCESS' : 'FAILED';

6. Debug-Logs für Ihren Live-Server

Sie werden folgende Logs sehen:

[INFO] DHL Server Environment Debug Info {
    "curl_version": {"version": "7.81.0", ...},
    "curl_is_old": true,
    "compatibility": {
        "will_use_http2": false,
        "will_use_tcp_keepalive": true,
        "will_use_fresh_connections": true
    }
}

7. Warum diese Lösung funktioniert

Problem mit cURL 7.81.0:

  • Weniger robuste SSL-Handhabung
  • Probleme mit HTTP/2
  • Instabile Verbindungen bei längeren Requests

Lösung:

  • TCP Keep-Alive: Hält Verbindungen stabil
  • Fresh Connections: Vermeidet Verbindungsprobleme
  • HTTP/1.1: Kompatibel mit älteren cURL-Versionen
  • Optimierte SSL-Optionen: Angepasst für OpenSSL 3.0.2

8. Monitoring

Die Lösung loggt automatisch:

  • cURL-Version und Kompatibilitätsstatus
  • Welche Optimierungen aktiviert sind
  • Erfolgreiche Verbindungsmethode

Fazit

Die Lösung ist jetzt speziell für Ihren Live-Server mit cURL 7.81.0 optimiert und sollte das SSL-Verbindungsproblem beheben! 🎉