Estou recebendo um erro NSS error -12286
ao baixar um arquivo do HTTPS usando curl
.
É possível fazer o download do mesmo arquivo sem problemas, wget
para excluir quaisquer problemas de firewall ou lista negra.
Já tentei, sem sorte, opções -k
e --cipher ecdhe_ecdsa_aes_128_gcm_sha_256
, esse é o código preferido do servidor de acordo com a ferramenta Qualys SSL Labs Test Server aqui: https://www.ssllabs.com/ssltest/analyze.html?d=intribunale.net&latest
Aqui está o cURL
log:
# 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
Minhas versões da lib são:
# 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
"Não é possível se comunicar com segurança com os pares: nenhum algoritmo (s) de criptografia comum". Os sistemas local e remoto não compartilham conjuntos de cifras em comum. Isso pode ser devido a uma configuração incorreta em cada extremidade. Pode ser que um servidor esteja configurado incorretamente para usar um certificado não-RSA com o algoritmo de troca de chaves RSA.--cipher[s]
especificar esse conjunto ECDHE, ele nem envia o ClientHello, apenas fecha a conexão e dá o erro. Isso parece estar fora de sincronia internamente, talvez após a longa negação do ECH pela RedHat. O RedHat wget usa OpenSSL, e o RedHat OpenSSL recente suporta ECC (apenas com P256 P384 P521, mas é o suficiente aqui).stunnel
(que usa o openssl) como simples para SSL, informe curl,http(notS)://localhost[:port]/whatever
mas adicione-H "Host: realhost"
para que o servidor de destino não saiba a diferença. ...Respostas:
A solução estava atualizando para o cURL 7.42 usando um repositório de terceiros para o CentOS 6 ou construindo a partir de fontes
fonte
yum update nss
) ou usarcurl -1
também pode resolver isso.Tivemos o mesmo problema com o curl 7.19.7. Atualizamos o NSS e ele corrigiu o problema!
fonte
No CentOS 6 com o último pacote openssl (1.0.1e), você deve atualizar o nss (yum update nss) como DiegoG escreveu acima. O comando update-ca-trust também pode ser útil. Se você estiver usando curl via php - reinicie o processo / serviço do servidor da web (ou seja, serviço httpd restart).
fonte