Je reçois une erreur NSS error -12286
lors du téléchargement d'un fichier à partir de HTTPS à l'aide de curl
.
Je peux télécharger le même fichier sans problème en utilisant wget
ainsi je peux exclure tout problème de pare-feu ou de liste noire.
Déjà essayé, sans chance, les options -k
et --cipher ecdhe_ecdsa_aes_128_gcm_sha_256
, c'est le chiffrement préféré du serveur selon l'outil Qualys SSL Labs Test Server ici: https://www.ssllabs.com/ssltest/analyze.html?d=intribunale.net&latest
Voici le cURL
journal:
# 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
Mes versions de lib sont:
# 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
«Impossible de communiquer en toute sécurité avec l'homologue: pas d'algorithme (s) de chiffrement commun (s)». Les systèmes locaux et distants ne partagent aucune suite de chiffrement en commun. Cela peut être dû à une mauvaise configuration à chaque extrémité. Cela peut être dû à une configuration incorrecte du serveur pour utiliser un certificat non RSA avec l'algorithme d'échange de clés RSA.--cipher[s]
spécifiant cette suite ECDHE, il n'envoie même pas ClientHello, ferme simplement la connexion et donne l'erreur. Cela semble être quelque chose de désynchronisé en interne, peut-être après le long déni d'ECC par RedHat. RedHat wget utilise OpenSSL, et le récent RedHat OpenSSL prend en charge ECC (uniquement avec P256 P384 P521 mais cela suffit ici).stunnel
(qui utilise openssl) en tant que plain-to-SSL, indiquez curlhttp(notS)://localhost[:port]/whatever
mais ajoutez-le-H "Host: realhost"
afin que le serveur cible ne puisse pas faire la différence. ...Réponses:
La solution était mise à niveau vers cURL 7.42 à l'aide d'un référentiel tiers pour CentOS 6 ou à partir de sources
la source
yum update nss
) ou l'utilisationcurl -1
pourrait également résoudre ce problème.Nous avons eu le même problème avec curl 7.19.7. Nous avons mis à niveau NSS et cela a résolu le problème!
la source
Sur CentOS 6 avec le dernier paquet openssl (1.0.1e) Vous devez mettre à jour nss (yum update nss) comme DiegoG l'a écrit ci-dessus. La commande update-ca-trust peut également être utile. Si vous utilisez curl via php - redémarrez votre processus / service de serveur Web (c.-à-d. Service httpd restart).
la source