# 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: ```env # 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) ```env DHL_SSL_VERIFY_PEER=false DHL_SSL_VERIFY_HOST=false ``` #### Option B: Ältere TLS-Version verwenden ```env DHL_SSL_VERSION=TLSv1_1 ``` #### Option C: Längere Timeouts ```env 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 ```bash # Konfiguration neu laden php artisan config:clear # Test mit Debug-Logs php artisan tinker ``` ```php $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! 🎉