Google OpenID funktioniert nicht mit dem OpenID-Plugin in WordPress
Lesezeit: 3 Minuten
Das OpenID-Plugin für WordPress scheint keinen der Google OpenID-Anbieter-Links zu akzeptieren:
http://google.com/profiles/username
oder
https://google.com/accounts/o8/id
Es gibt den Fehler zurück (für beide):
Could not discover an OpenID
identity server endpoint
at the url:
http://google.com/profiles/username
Irgendeine Idee warum? Das Janrain-Engagement-Plugin funktioniert, aber ich kann es wegen anderer Probleme damit nicht verwenden.
Das Problem ist gelöst. Da Google, Yahoo und einige andere OpenID-Anbieter https-Endpunkte bereitstellen, versucht curl, das andere Ende zu verifizieren, wenn es eine POST-Anfrage an dieses sendet – da curl kein Paket von CA-Zertifikaten enthält, schlägt es an allen solchen Endpunkten fehl.
Die Lösung besteht darin, curl anzuweisen, den Anbieter nicht zu verifizieren, oder ihm das richtige CA-Zertifikat für Google zu geben.
Also, wie hast du das auf WordPress gemacht?
– Grilix
5. Juli 12 um 2:33 Uhr
Wenn Sie SSL-Zertifikate auf Ihrem Host installieren können, ist dies die beste Option. Gehen Sie andernfalls den OpenID-PHP-Code durch, um herauszufinden, wo curl versucht, eine Verbindung zum Anbieter herzustellen, und kommentieren Sie die Überprüfungsoptionen aus. Ich habe die genauen Details vergessen, aber es sollte nicht zu schwer sein, es herauszufinden.
– Vanwaril
5. Juli 12 um 4:54 Uhr
Schön, ich kenne mich mit solchen “CA” -Dingen nicht aus :P, aber das wird mir helfen. Danke schön!
– Grilix
9. Juli 12 um 15:04 Uhr
Muss ein Problem mit den CA-Zertifikaten auf Ihrem Server sein. Google hat große Probleme mit seinen Zertifikaten.
Außerdem habe ich dies auf meinem System mit Apache zum Laufen gebracht, möglicherweise gibt es auch Probleme mit Ihrem Server. Versuchen Sie, ein Paket mit CA-Zertifikaten für Ihr System zu finden und zu installieren.
Bitte überprüfen Sie die PHP-Installation auf fehlende Plugins
Wie @Vanwaril und @tarantinofan betonten, ist der richtige Weg, dies zu tun, die richtigen Zertifikate auf Ihrem Server zu installieren.
Wenn Sie jedoch, wie von @Vanwaril erwähnt, den anderen Weg wählen und die Zeilen in der openid-Codebasis auskommentieren, die für die Endpunktüberprüfung verantwortlich ist, gehen Sie wie folgt vor:
openidlibAuthYadisParanoidHTTPFetcher.php – fügen Sie die folgende Zeile nach Zeile 152 ein
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
openidlivAuthOpenIDconsumer.php – kommentieren Sie die Zeilen 970 bis 979 in der _idResCheckSignature-Funktion aus, sodass die Funktion null statt eines openid-Fehlers zurückgibt
Auch dies wird nicht empfohlen, aber Sie können zumindest fortfahren, bis Sie die richtigen Zertifikate auf Ihrem Server installiert haben.