2011-01-14 7 views
3

Die OpenID-Plugin für Wordpress scheint nicht der Google OpenID-Provider Links zu akzeptieren:Google OpenID nicht mit OpenID-Plugin in Wordpress arbeiten

http://google.com/profiles/username 

oder

https://google.com/accounts/o8/id 

Es gibt den Fehler (für beide):

Could not discover an OpenID 
identity server endpoint 
at the url: 
http://google.com/profiles/username 

Irgendeine Idee warum? Das Plugin janrain engage funktioniert, aber ich kann das wegen anderer Probleme nicht verwenden.

Antwort

4

Das Problem ist gelöst. Da Google, Yahoo und einige andere OpenID-Anbieter HTTPS-Endpunkte bereitstellen, versucht curl, das andere Ende zu verifizieren, wenn eine POST-Anfrage an sie gerichtet wird. Da curl nicht mit einem Paket von CA-Zertifikaten ausgeliefert wird, schlägt es auf allen solchen Endpunkten fehl.

Die Lösung ist entweder zu sagen Curl nicht zu überprüfen, den Anbieter oder geben Sie das richtige CA-Zertifikat für Google.

+0

also, wie hast du das auf WordPress? – grilix

+1

Wenn Sie SSL-Zertifikate auf Ihrem Host installieren können, ist dies die beste Option. Andernfalls gehen Sie durch den OpenID-PHP-Code, um herauszufinden, wo curl versucht, eine Verbindung zum Provider herzustellen und Verifizierungsoptionen zu kommentieren. Ich habe die genauen Details vergessen, aber es sollte nicht schwer sein, es herauszufinden. – Vanwaril

+0

Schön, solche "CA" -Dinge kenne ich nicht: P, aber das wird mir helfen. Vielen Dank! – grilix

0

Muss ein Problem mit den CA-Zertifikaten auf Ihrem Server sein. Google hat große Probleme mit seinen Zertifikaten.

Auch ich habe das funktioniert auf meinem System mit Apache, kann auch Probleme mit Ihrem Server sein. Versuchen Sie, ein Paket von CA-Zertifikaten für Ihr System zu finden und es zu installieren.

0

Bitte überprüfen Sie die fehlenden Plug-in in php install

/etc/php.d/dom.ini, 
/etc/php.d/mysql.ini, 
/etc/php.d/mysqli.ini, 
/etc/php.d/pdo_sqlite.ini, 
/etc/php.d/wddx.ini, 
/etc/php.d/xmlreader.ini, 
/etc/php.d/xmlwriter.ini, 
/etc/php.d/xsl.ini, 
0

Wie @Vanwaril und @tarantinofan wiesen darauf hin, der richtige Weg, dies zu tun ist, die richtigen certs auf dem Server installiert bekommen.

Wenn Sie jedoch wählen, die andere Route nehmen, wie @Vanwaril erwähnt, und kommentieren die Zeilen in der openid Code-Basis aus, die für den Endpunkt Überprüfung verantwortlich ist dann wie folgt vor:

openid \ lib \ Auth \ Yadis \ ParanoidHTTPFetcher.php - legen Sie die folgende Zeile nach Zeile 152

curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false); 

openid \ Liv \ Auth \ OpenID \ consumer.php - Kommentar aus Zeilen 970 bis 979 in der _idResCheckSignature Funktion, so dass die Funktion den Wert null zurück anstelle eines Openid-Fehlers

Auch dies wird nicht empfohlen, aber Sie können zumindest vorwärts gehen, bis Sie die richtigen Zertifikate auf Ihrem Server installiert haben.

EDIT: und diese Verbindung ist sehr hilfreich für den certs Umgang: https://web.archive.org/web/20090214215411/http://curl.haxx.se/docs/sslcerts.html

0

ich die gleichen Fehler und Apache-Fehlerprotokolle Inspektion Ich habe die folgende

CURL error (60): SSL certificate problem: unable to get local issuer certificate

Dies war verursacht durch curl Aufrufe vom OpenID-Plugin.

Folgendes funktionierte für mich.Quelle: https://stackoverflow.com/a/21114601/3826642

  1. Verwenden Sie dieses Zertifikat Root-Zertifikat Bundle: https://curl.haxx.se/ca/cacert.pem

  2. Kopie dieses Zertifikat Bündel auf Ihrer Festplatte. Und verwenden Sie diese auf php.ini

    curl.cainfo = "path_to_cert\cacert.pem"

Seien Sie sicher, dass Sie den Server neu zu starten, nachdem Sie Änderungen vornehmen.

Verwandte Themen