2013-04-02 9 views
13

Ich versuche auf einen Dienst von Drittanbietern über PHP curl auf einem Centos 6-System zuzugreifen, das mit curl und libcurl gegen NSS anstelle von OpenSSL kompiliert wird.NSS: Client-Zertifikat nicht gefunden (Nickname nicht angegeben)?

Dies verursacht Probleme für mich, jedes Mal, wenn ich versuche, auf den Dienst zuzugreifen, bekomme 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 bin für Schritt für Schritt Anleitungen suchen, wie dies zu tun (beachten Sie, ich brauche dies mit PHP curl Funktionen von Nginx-Server aufgerufen arbeiten)

Dank

Antwort

14

Versuchen Sie das Zertifikat prefixing Dateiname mit "./" oder mit dem vollständigen Pfad. Von der Curl manpage:

Wenn curl gegen die NSS SSL-Bibliothek gebaut wird dann diese Option [--cert] kann den Spitznamen des Zertifikats sagen kräuseln innerhalb der NSS-Datenbank durch die Umgebungsvariable SSL_DIR definiert zu verwenden (oder durch default/etc/pki/nssdb). Wenn das Modul NSS PEM PKCS # 11 (lib- nsspem.so) verfügbar ist, können PEM-Dateien geladen werden. Wenn Sie eine Datei aus dem aktuellen Verzeichnis verwenden möchten, müssen Sie sie mit dem Präfix "./" voranstellen, um Verwechslungen mit einem Spitznamen zu vermeiden.

(Hervorhebung von mir)

Alternativ einige Anweisungen für hier in die NSS-Zertifikat-Datenbank importieren, obwohl ich sie nicht verwendet haben: http://rcritten.fedorapeople.org/nss_compat_ossl.html

+0

Das funktionierte für mich. (Liebe, die "alte" Beiträge wiederbelebt!) –

+1

es hat nicht funktioniert für mich ... mein Curl ist nicht mit Nsspem kompiliert. Also benutze ich die NSS-Datenbank ... aber curl finde nie meinen Schlüssel friendyname. Selbst wenn es mir gelingt, die Schlüsselnamen mit certutil aufzulisten ... – smashing

+0

Das hat bei mir nicht funktioniert, aber führe mich in die richtige Richtung. Mein CURL wurde mit NSS kompiliert (checked mit curl-version) - und dieser Beitrag ist die Lösung, die am Ende für mich funktionierte: http://stackoverflow.com/questions/19265100/curl-command-unable-to-load-client -cert-8018/20140138 # 20140138 – KFox112

0

Ich habe die gleiche Fehlermeldung mit curl wenn ich beim Versuch, auf einen FTPS-Server zuzugreifen, der eine einfache Passwort-Authentifizierung verwendet hat, ein falsches Passwort eingegeben habe. Es hatte nichts mit Zertifikaten zu tun.