2013-04-27 30 views
6

Używam lokalnego protokołu https i fałszywego certyfikatu.jak naprawić błąd openid https

Podczas korzystania django-openid-auth, to daje mi ten błąd:

OpenID failed 

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

Jak mogę rozwiązać ten problem?

+0

dodam mój fałszywy certyfikat /etc/ssl/certs/ca-certificates.crt pliku i błędów zmieniono 'OpenID udało błąd wykrywania OpenID: Błąd pobierania dyfraktogramy rentgenowskie XRD dokument: (77„problem z SSL CA cert (ścieżka? Prawa dostępu?) ")' – sdnaghdi

+2

Błąd jest błędem biblioteki CURL http://curl.haxx.se/libcurl/c/libcurl-errors.html#CURLESSLCACERT. Dokumentacja CURL stwierdza, że ​​serwer, z którym się łączysz, ma certyfikat, którego nie można zweryfikować. Kiedy pojawia się błąd, na jakim adresie URL? – ziima

Odpowiedz

0

Z mojego doświadczenia wynika, że ​​w większości przypadków walidatory są wybredne w przypadku certyfikatów z podpisem własnym.

Generalnie, korzystając z "fałszywych" certyfikatów, zawsze należy wykonać dodatkowy krok i stworzyć fałszywy ośrodek certyfikacji i podpisać fałszywy certyfikat za pomocą urzędu certyfikacji. Jeśli nic innego, to sprawi, że twoje testy będą bardziej jak scenariusz z prawdziwego życia.

Oto krótkie instrukcje jak to zrobić z OpenSSL:

  1. Tworzenie CA (własny podpisany)
  2. Tworzenie klucza serwera i CSR openssl req -out server.csr -pubkey -new -keyout server.secure.key
  3. zdjąć hasło openssl rsa -in server.secure.key -out server.key
  4. Podpisz certyfikat serwera za pomocą CA openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 1825
  5. (Aby uzyskać dalsze certyfikaty, użyj istniejącego numeru seryjnego openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAserial ca.srl -out server.crt -days 1825)

Gdy masz problemy z żadnego SSL (nie tylko HTTPS) - stosować surowe openssl debugowanie wykonując

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

przykład

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

Zwykle oszczędza to kłopotów z wykryciem problemów z rzeczywistymi certyfikatami, które w rzeczywistości nie mają nic wspólnego z kodem.

Powiązane problemy