Я получаю сообщение об ошибке NSS error -12286
при загрузке файла из HTTPS с помощью curl
.
Я могу загрузить тот же файл без проблем, используя, wget
таким образом, я могу исключить любые проблемы с брандмауэром или черным списком.
Уже безуспешно, без удачи, опций -k
и того --cipher ecdhe_ecdsa_aes_128_gcm_sha_256
, что сервер предпочитает шифровать согласно инструменту Qualys SSL Labs Test Server здесь: https://www.ssllabs.com/ssltest/analyze.html?d=intribunale.net&latest
Вот cURL
журнал:
# 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
Мои версии lib:
# 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
«Невозможно безопасно связаться с одноранговым узлом : нет общего алгоритма (-ов) шифрования». Локальные и удаленные системы не имеют общих наборов шифров. Это может быть связано с неправильной настройкой на любом конце. Это может быть связано с неправильной настройкой сервера для использования сертификата не-RSA с алгоритмом обмена ключами RSA.--cipher[s]
указании этого ECDHE пакет, он не даже отправить ClientHello, просто закрывает соединение и выдает ошибку. Похоже, это что-то не синхронизировано внутри, возможно, после долгого отказа RedHat от ECC. RedHat wget использует OpenSSL, а недавний RedHat OpenSSL поддерживает ECC (только с P256, P384, P521, но этого здесь достаточно).stunnel
(который использует openssl) как обычный-SSL, сказать curl,http(notS)://localhost[:port]/whatever
но добавить,-H "Host: realhost"
чтобы целевой сервер не мог различить разницу. ...Ответы:
Решением было обновление до cURL 7.42 с использованием стороннего репозитория для CentOS 6 или сборка из исходников
источник
yum update nss
) или использованиеcurl -1
может также решить эту проблему.У нас была такая же проблема с curl 7.19.7. Мы обновили NSS, и это исправило проблему!
источник
В CentOS 6 с последним пакетом openssl (1.0.1e) вы должны обновить nss (yum update nss), как писал ДиегоГ выше. Команда update-ca-trust также может быть полезна. Если вы используете curl через php - перезапустите процесс / службу веб-сервера (т.е. перезапустите службу httpd).
источник