Beim Update auf WordPress 4.4 gibt es in einigen Server-Konstellationen Probleme mit dem Update von Plugins oder Sprachpaketen. Der Download ist fehlgeschlagen, es liege ein SSL Zertifikate Problem vor. Das tritt auch ohne Serveränderungen oder sonstigen Einstellungen auf und ist relativ einfach zu lösen, wenn man weiß wie. Da die Lösungen in manchen Foren nicht funktionierten, möchte ich hier eine Lösung vorschlagen, die wirkt.
Der SSL-Fehler
Download fehlgeschlagen. SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Je nach WP-Version steht dort auch:
Warning: Ein unerwarteter Fehler ist aufgetreten. Das könnte an WordPress.org oder der Konfiguration dieses Servers liegen. Solltest du weiterhin Probleme haben, wende dich an den Support. (WordPress konnte keine sichere Verbindung zu WordPress.org herstellen. Bitte kontaktiere deinen Server-Administrator.) in /.../wp-admin/includes/plugin-install.php on line 158
Angeblich hängt dies mit dem Zertifikat in
wp-includes/certificates/ca-bundle.crt
zusammen.
This is because WordPress is using its own certificate bundle, overriding the global system certificate bundle. The problem is that the certificate bundle that WordPress has is old and needs to be updated. To do this, please download the latest one from http://curl.haxx.se/ca/cacert.pem and save it as ca-bundle.crt.
Upload this file to: wp-includes/certificates/ca-bundle.crt
Das hat mir jetzt nicht geholfen. Aber wäre natürlich eine etwas einfachere, systemgerechtere Lösung.
Die Lösung
1. Verzeichnis anlegen
Man legt im Ordner wp_content
ein Verzeichnis namens mu-plugins
an.
2. PHP-Datei anlegen
In diesem Verzeichnis legt man eine PHP
-Datei an. Man kann diese update-fix.php
öder ähnlich benennen.
3. Inhalt der Datei
In diese Datei kopiert man nach dem öffnenden PHP-Tag folgenden Inhalt:
add_filter('https_ssl_verify', '__return_false');
add_filter('https_local_ssl_verify', '__return_false');
Und schön läuft es wie bisher. 🙂
Alternative functions.php
Angeblich funktioniert auch folgender Code in der functions.php
add_action('http_request_args', 'jkudish_http_request_args', 10, 2);
function jkudish_http_request_args($args, $url) {
$args['sslverify'] = false;
return $args;
}
Bei mir hat das leider nichts gebracht.
Update
Dank Kommentar von Lennart:
„Ich würde empfehlen das PHP Standard crt File einzubinden. Hier bei github gibt es dafür auch einen add_filter: https://github.com/FiloSottile/mkcert/issues/165#issuecomment-616002942„