web-dev-qa-db-ger.com

NSS: Client-Zertifikat nicht gefunden (Spitzname nicht angegeben)?

Ich versuche, auf einen Dienst eines Drittanbieters über PHP curl auf einem Centos 6-System zuzugreifen, das mit curl und libcurl geliefert wird, die gegen NSS anstelle von OpenSSL kompiliert werden.

Dies verursacht Probleme für mich, jedes Mal, wenn ich versuche, auf den Dienst zuzugreifen, erhalte ich diesen Fehler NSS: client certificate not found (nickname not specified).

Mein Verständnis ist, dass ich die Zertifikate in der NSS-Datenbank installieren muss.

Ich suche nach einer schrittweisen Anleitung, wie das geht (bedenke, ich brauche dies, um mit PHP - Curl-Funktionen zu arbeiten, die vom Nginx-Server aufgerufen werden.)

Vielen Dank

17
Jason

Versuchen Sie, dem Zertifikatsdateinamen "./" oder den vollständigen Pfad voranzustellen. Von der Curl-Manpage:

Wenn curl für die NSS-SSL-Bibliothek erstellt wurde, ist diese Option [--cert] kann curl den Spitznamen des Zertifikats mitteilen, das in der .__ verwendet werden soll. NSS-Datenbank, die durch die Umgebungsvariable SSL_DIR (oder durch Default/etc/pki/nssdb) definiert wird. Wenn das NSS PEM PKCS # 11-Modul (lib - Nsspem.so) verfügbar ist, werden möglicherweise PEM-Dateien geladen. Wenn du Wenn Sie eine Datei aus dem aktuellen Verzeichnis verwenden möchten, stellen Sie diese bitte voran mit dem Präfix "./", um Verwechslungen mit einem Kurznamen zu vermeiden.

(Hervorhebung meines)

Alternativ finden Sie hier einige Anweisungen zum Importieren in die NSS-Zertifikatsdatenbank, obwohl ich sie noch nicht verwendet habe: http://rcritten.fedorapeople.org/nss_compat_ossl.html

20
pimlottc

Ich hatte das gleiche Problem auf Centos 7. Nach dem Debuggen stand es im Zusammenhang mit dem Timeout.

Wenn Sie dieses Problem sehen und curl_setopt verwenden ($ curl, CURLOPT_TIMEOUT_MS, 300); Dann überprüfen Sie, wie lange es dauert. Wenn es sich um Ihre Zeitüberschreitung handelt. Das ist das Problem und hängt mit keinem Zertifikat zusammen.

Ich habe einen Timeout-Fehler von Curl im Falle eines Timeouts erwartet, aber das scheint nicht zu passieren.

1

Ich habe dieselbe Fehlermeldung mit curl erhalten, als ich beim Versuch, auf einen FTPS-Server zuzugreifen, der die einfache Kennwortauthentifizierung verwendet hat, das falsche Kennwort eingegeben hat. Es hatte nichts mit Zertifikaten zu tun.

0
asmaier