
Я пытаюсь заставить curl использовать шифр GOST2001-GOST89-GOST89, который доступен и может использоваться OpenSSL, но продолжаю получать failed setting cipher list
ошибку, несмотря на то, что curl видит движок gost и может использовать клиентские сертификаты GOST. Как это исправить? Все библиотеки скомпилированы из исходников.
$ openssl ciphers | grep -o '\(GOST[[:digit:]]\+-\?\)\+'
GOST2001-GOST89-GOST89
GOST94-GOST89-GOST89
$ openssl engine | grep gost
(gost) Reference implementation of GOST engine
$ openssl version
OpenSSL 1.0.1 14 Mar 2012
$ curl -V
curl 7.25.0 (x86_64-apple-darwin11.3.0) libcurl/7.25.0 OpenSSL/1.0.1 zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
$ curl --engine gost --ciphers GOST2001-GOST89-GOST89 https://localhost:4433
curl: (59) failed setting cipher list
решение1
Это не совсем ответ, но может кому-то помочь.
Код ошибки 59 означает «Не удалось использовать указанный шифр SSL» (изздесь).
Очевидно, curl не может использовать этот шифр.
Ошибка может быть обманчивой, поскольку проблема на самом деле может заключаться в том, что ваш локальный сервер отклонил шифр как неподдерживаемый во время установления связи.
Возможно, лучше использовать более известный шифр.