Vor kurzer Zeit ist mir aufgefallen, dass die Kommentar-Funktion sowie die Feedback-Funktion, welche mit Googles ReCaptcha abgesichert ist, nicht mehr korrekt funktionierte:
Beim Absenden des Formulars wurde immer die Fehlermeldung
Die angegebene Antwort ist nicht passend.
ausgegeben.
Im Drupal-Log finden sich hierzu ein paar interessante Fehler:
CAPTCHA | Uhrzeit+Datum | comment_comment_form post blocked by CAPTCHA module:… | |||
reCAPTCHA web service | Uhrzeit+Datum | The json response is invalid or malformed. | |||
reCAPTCHA web service | Uhrzeit+Datum | GuzzleHttp\Exception\RequestException: cURL error 60:… |
Der letzte Fehler hat anscheinend die beiden oberen Fehler ausgelöst, also habe ich mir den Fehler mal genauer angesehen:
GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
Also habe ich mir mal die Webseite angeschaut, welche in der Fehlermeldung steht. Auf der Webseite wird beschrieben, dass die Certificate Authority List auf dem Server aktualisiert werden muss, damit "curl" das Zertifikat des Servers von Google korrekt verifizieren kann. Da dies aktuell fehlschlägt, wird keine korrekte Rückantwort des Google-Servers zurückgegeben und die Anfrage läuft ins leere und erzeugt daher dann die fehlerhafte Rückgabe der JSON Antwort.
Also habe ich die dort um Download angebotende Datei mit dem IE11 heruntergeladen und auf den Server kopiert, sowie in der php.ini als
curl.cainfo = /usr/local/etc/cacert.pem
referenziert.
Nun habe ich den Webserver neu gestartet und siehe da: Es funktioniert immer noch nicht.
Nun habe ich weiter gesucht und im Internet folgenden Eintrag gefunden, bei welchem das Encoding der PEM-Datei ein Problem erzeugt, wenn es von Windows heruntergeladen wird:
Hier gibt es dann einen Link, um eine ZIP-Datei herunterzuladen, welche dann die PEM-Datei enthält.
Als ich diese Datei hochgeladen hatte, funktionierte die Überprüfung der Zertifikate wieder.
Achtung: Es wird automatisch nun allen Zertifikaten vertraut, welche als Stammzertifizierungsstellen in der Datei gelistet sind.