PayPal Umstellung auf TLS 1.2 und HTTP/1.1

Ab Juli 2018 stellt der Zahlungsanbieter PayPal die Unterstützung der mittlerweile veralteten TLS-Versionen 1.0 und 1.1 ein. Weiterhin setzt PayPal dann zwingend das HTTP-Protokoll ab Version 1.1 voraus, ältere Versionen wie 1.0 werden nicht mehr unterstützt.

Webshops, die PayPal als Zahlungsmethode anbieten, und dabei direkt auf eine PayPal-Schnittstelle zugreifen (z.B. Instant Payment Notification), müssen bis dahin auf die aktuelle TLS-Version 1.2 sowie HTTP/1.1 umgestellt werden. Die meisten Webshops greifen auf die PayPal-Schnittstellen mittels libcurl zu, dabei wird auf unseren Webservern standardmäßig HTTP/1.1 und TLS 1.2 genutzt. Manche Webshops nutzen jedoch nicht die Standardeinstellungen von libcurl, sondern setzen ausdrücklich eine ältere TLS Version wie 1.0. Dies wird zukünftig zu Problemen führen.

PayPal informiert betroffene Kunden aktuell per E-Mail, diese müssen bis zum Juli 2018 ein Update der Webshop-Software bzw. des PayPal Zahlungsmoduls vornehmen.

Falls Sie noch einen älteren WebShop betreiben, und keine Updates für das PayPal-Zahlungsmodul bereitstehen, müssen Sie ggf. den PHP-Quellcode anpassen. Suchen Sie dazu nach allen PHP-Dateien, in denen die Zeichenfolgen “curl_setopt” und “TLSv1” vorkommen, und kommentieren diese in einem Text-Editor mittels vorangestelltem // aus. Sie können die betroffenen Dateien mit den entsprechenden Stellen im Quellcode über folgenden SSH-Befehl ermitteln:

find . -name "*.php" -exec grep "curl_setopt(.*TLSv1" {} \; -print

Probleme mit PayPal nach SSL-Abschaltung

Der Zahlungsanbieter PayPal hat zum 12.01.2015 die Unterstützung der mittlerweile veralteten SSL-Verschlüsselung eingestellt, dadurch funktionieren die Zahlungsmodule vieler bekannter Webshops wie Oxid, Gambio, xt:commerce oder Prestashop unter Umständen nicht mehr. Ältere Versionen der PayPal-Module dieser Webshops setzen die Verschlüsselung der Verbindung zu den PayPal-Servern fest auf SSL Version 3, daher wird die sonst standardmäßig benutzte, sichere TLS-Verschlüsselung nicht eingesetzt.

Die meisten Webshop-Anbieter haben mittlerweile Updates herausgebracht, die dieses Problem beheben. Falls Sie auf unseren Webservern einen Webshop mit PayPal-Anbindung installiert haben, sollten Sie daher dringend prüfen, ob es Updates für die von Ihnen eingesetzte Shop-Software gibt.

Sie können prüfen, ob Ihr Webshop betroffen ist, in dem Sie nach “CURLOPT_SSLVERSION” im PHP-Quellcode des PayPal-Moduls suchen. Loggen Sie sich dazu einfach per SSH auf Ihrem Webserver ein und geben folgenden Befehl ein:
ag CURLOPT_SSLVERSION

Dann werden Ihnen alle Dateien angezeigt in denen diese Zeichenkette vorkommt. Achten Sie dabei auf Dateien, deren Name “paypal” enthält. Sie sind von diesem Problem betroffen, wenn Sie in diesen Dateien Zeilen ähnlich den folgenden finden:
curl_setopt ($ch, CURLOPT_SSLVERSION, 3);
curl_setopt ($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_SSLv3);

Falls es keine Updates für Ihren Webshop gibt, können Sie diese Zeilen einfach im Quellcode auskommentieren (am Anfang der Zeile // hinzufügen), dann wird automatisch TLS-Verschlüsselung genutzt.

Ausführlichere Informationen und Hintergründe finden Sie bei t3n.