2013-04-27 13 views
6

Ich benutze lokale https-Protokoll und ein gefälschtes Zertifikat.Wie zu beheben https Openid Fehler

Wenn django-openid-auth verwenden, es gibt mir diese Fehlermeldung:

OpenID failed 

OpenID discovery error: Error fetching XRDS document: (60, 'server certificate   verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none') 

Wie kann ich dieses Problem beheben?

+0

Ich füge meine gefälschtes Zertifikat in /etc/ssl/certs/ca-certificates.crt Datei und Fehler zu geändert 'OpenID fehlgeschlagen OpenID Ermittlungsfehler: Fehler XRDS Dokument Abrufen: (77,‚Problem mit dem SSL CA cert (Pfad? Zugriffsrechte?) ') ' – sdnaghdi

+2

Der Fehler ist ein Fehler der CURL-Bibliothek http://curl.haxx.se/libcurl/c/libcurl-errors.html#CURLESSLCACERT. Die CURL-Dokumentation besagt, dass der Server, zu dem Sie eine Verbindung herstellen, über ein Zertifikat verfügt, das nicht überprüft werden kann. Wann tritt der Fehler auf, unter welcher URL? – ziima

Antwort

0

Meiner Erfahrung nach sind die Validierer in den meisten Fällen wählerisch auf selbstsignierten Zertifikaten.

Im Allgemeinen, wenn Sie "gefälschte" Zertifikate verwenden, sollten Sie immer den zusätzlichen Schritt machen und eine gefälschte CA erstellen und das gefälschte Zertifikat mit der CA signieren. Wenn nichts anderes, macht dies Ihre Tests mehr wie ein reales Leben Szenario.

sind hier eine kurze Anleitung, wie man dies mit OpenSSL zu tun:

  1. eine CA erstellen (selbst signiertes)
  2. erstellen Server-Schlüssel und csr openssl req -out server.csr -pubkey -new -keyout server.secure.key
  3. das Passwort Take off openssl rsa -in server.secure.key -out server.key
  4. Signieren Sie das Serverzertifikat mit der CA openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 1825
  5. (Verwenden Sie für weitere Zertifikate die vorhandene Seriennummer openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAserial ca.srl -out server.crt -days 1825)

Jedes Mal, wenn Sie Probleme mit jeden SSL (nicht nur HTTPS) - roh openssl verwenden, indem Sie debuggen

openssl s_verify -connect <hostname>:<portnumber> <options> 

tun z.B. Diese

openssl s_verify -connect localhost:443 -CAfile myfakeca.pem 

in der Regel spart Ihnen eine Menge Ärger, herauszufinden, Probleme mit Ihrem tatsächlichen Zertifikate, die eigentlich nichts mit Ihrem Code zu tun haben.