Drupal ReCaptcha Fehler: GuzzleHttp RequestException

02.10.2016
Dieser Inhalt ist bereits etwas älter.
This content is already a bit old.
Drupal Captcha

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:

 CAPTCHAUhrzeit+Datumcomment_comment_form post blocked by CAPTCHA module:…  
 reCAPTCHA web serviceUhrzeit+DatumThe json response is invalid or malformed.  
 reCAPTCHA web serviceUhrzeit+DatumGuzzleHttp\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:

https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate

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.


 

Feedback, Verbesserungsvorschläge, weitere Ideen?

Einfach das Kontaktformular verwenden oder direkt eine E-Mail an info@kirgus.net.