Recibo un error NSS error -12286
al descargar un archivo desde HTTPS usando curl
.
Puedo descargar el mismo archivo sin problemas, por wget
lo que puedo excluir cualquier problema de firewall o lista negra.
Ya probé, sin suerte, las opciones -k
y --cipher ecdhe_ecdsa_aes_128_gcm_sha_256
, ese es el cifrado preferido del servidor de acuerdo con la herramienta Qualys SSL Labs Test Server aquí: https://www.ssllabs.com/ssltest/analyze.html?d=intribunale.net&latest
Aquí está el cURL
registro:
# 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
Mis versiones lib son:
# 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
--cipher[s]
especificar esa suite ECDHE, ni siquiera envía ClientHello, solo cierra la conexión y da el error. Esto parece estar fuera de sincronización internamente, tal vez después de la larga negación de ECC por parte de RedHat. RedHat wget usa OpenSSL, y RedHat OpenSSL reciente es compatible con ECC (solo con P256 P384 P521 pero eso es suficiente aquí).
stunnel
(que usa openssl) como simple a SSL, decirle a curl http(notS)://localhost[:port]/whatever
pero agregar -H "Host: realhost"
para que el servidor de destino no pueda notar la diferencia. ...
SSL_ERROR_NO_CYPHER_OVERLAP
"No se puede comunicar de forma segura con un par: no hay algoritmos de cifrado comunes". Los sistemas locales y remotos no comparten conjuntos de cifrado en común. Esto puede deberse a una configuración incorrecta en cualquiera de los extremos. Puede deberse a que un servidor esté mal configurado para usar un certificado que no sea RSA con el algoritmo de intercambio de claves RSA.