NSS error -12286
Beim Herunterladen einer Datei von HTTPS mit wird eine Fehlermeldung angezeigt curl
.
Ich kann dieselbe Datei ohne Probleme herunterladen, um Probleme mit der wget
Firewall oder der Blacklist auszuschließen.
Bereits ausprobiert, ohne Glück, Optionen -k
und --cipher ecdhe_ecdsa_aes_128_gcm_sha_256
das ist die vom Qualys SSL Labs Test Server-Tool bevorzugte Verschlüsselung hier: https://www.ssllabs.com/ssltest/analyze.html?d=intribunale.net&latest
Hier ist das cURL
Protokoll:
# curl -v https://www.intribunale.net/immobili
* About to connect() to www.intribunale.net port 443 (#0)
* Trying 104.27.150.214... connected
* Connected to www.intribunale.net (104.27.150.214) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS error -12286
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error
Meine lib-Versionen sind:
# curl -V
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
SSL_ERROR_NO_CYPHER_OVERLAP
"Kann nicht sicher mit Peer kommunizieren: keine gemeinsamen Verschlüsselungsalgorithmen." Das lokale und das entfernte System haben keine gemeinsamen Verschlüsselungssuiten. Dies kann an einer Fehlkonfiguration an beiden Enden liegen. Dies kann daran liegen, dass ein Server falsch konfiguriert ist, um ein Nicht-RSA-Zertifikat mit dem RSA-Schlüsselaustauschalgorithmus zu verwenden.--cipher[s]
dieser ECDHE Suite spezifiziert, ist es nicht einmal Client senden, schließt gerade die Verbindung und gibt den Fehler. Dies scheint intern nicht synchron zu sein, möglicherweise nach RedHats langer Ablehnung von ECC. RedHat wget verwendet OpenSSL, und das aktuelle RedHat OpenSSL unterstützt ECC (nur mit P256 P384 P521, aber das reicht hier aus).stunnel
Richten Sie (das openssl verwendet) als Plain-to-SSL ein, teilen Sie curl mit,http(notS)://localhost[:port]/whatever
aber fügen Sie hinzu,-H "Host: realhost"
damit der Zielserver den Unterschied nicht erkennen kann. ...Antworten:
Die Lösung bestand darin, ein Upgrade auf cURL 7.42 mithilfe eines Drittanbieter-Repositorys für CentOS 6 durchzuführen oder aus Quellen zu erstellen
quelle
yum update nss
) oder dessen Verwendungcurl -1
kann dies ebenfalls lösen.Wir hatten das gleiche Problem mit Curl 7.19.7. Wir haben NSS aktualisiert und das Problem wurde behoben!
quelle
Unter CentOS 6 mit dem neuesten openssl-Paket (1.0.1e) sollten Sie nss (yum update nss) aktualisieren, wie DiegoG oben geschrieben hat. Der Befehl update-ca-trust kann ebenfalls hilfreich sein. Wenn Sie Curl über PHP verwenden, starten Sie den Webserver-Prozess / -Dienst neu (dh den Dienst httpd restart).
quelle