Назад | Перейти на главную страницу

Curl в Fedora не принимает Cloudflare https

Использование curl на чистой ванильной Fedora 21 для получения сайта, размещенного через службу https cloudflare, дает ошибку:

curl https://www.opencpu.org
>> curl: (35) Cannot communicate securely with peer: no common encryption algorithm(s).

Также:

curl https://www.cloudflare.org
>> curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.

Эта проблема появляется только в Fedora, но не в Ubuntu или Mac с той же версией curl. Полагаю, это должно быть связано с nns:

curl --version
>> curl 7.37.0 (x86_64-redhat-linux-gnu) libcurl/7.37.0 NSS/3.17.3 Basic ECC zlib/1.2.8 libidn/1.28 libssh2/1.4.3

certutil -L
>> certutil: function failed: SEC_ERROR_LEGACY_DATABASE: The certificate/key database is in an old, unsupported format.

Есть предположения, что я делаю не так?

Общим фактором для обоих этих сайтов является то, что они используют SSL-сертификаты ECC для защиты своих https-соединений, а не традиционные сертификаты RSA, используемые большинством сайтов. В настоящее время они очень редки, но ожидается, что в будущем их популярность возрастет.

Обе используемые версии curl и NSS были созданы с использованием ECC и поэтому должны поддерживать эти сертификаты, поэтому я думаю, что вы столкнулись с ошибкой в ​​Fedora и должны сообщить об этом. А связанная ошибка был недавно исправлен в RHEL 7.

В качестве обходного пути вы можете использовать wget вместо того curl, у которого нет проблем с подключением к этим сайтам (хотя последний возвращает ошибку 409 Conflict).

Ошибка Fedora находится на https://bugzilla.redhat.com/show_bug.cgi?id=1185708

Причина в том, что curl использует NSS и не хочет отклоняться от других программ, использующих NSS.

В настоящее время не исправлено по состоянию на июль 2015 года в Fedora 22

Пожалуйста попробуйте

bash yum update nss