Я скопировал файл PEM в/usr/local/share/ca-certificates/и выполнил обновления-ca-сертификаты, и я подтвердил, что полученный сертификат теперь включен в /etc/ssl/certs/ca -certificates. crt, который является файлом, напечатанным curl-config -ca. Я также подтвердил, что сертификат, напечатанный openssl s_client -connect example.com:443, был идентичен моему файлу PEM. И все же я продолжаю получать сообщение об ошибке "Ошибка: 14090086: SSL: сообщение SSL3_GET_SERVER_CERTIFICATE: сертификат не удалось". Это происходит, даже если я использую параметр curl --cacert, как описано в http://curl.haxx.se/docs/sslcerts.html, чтобы указать, какой сертификат использовать.
Он работает, если я полностью отключу проверку сертификата с помощью curl -k, но я не хочу этого делать, потому что я пытаюсь написать тестовый жгут, который должен правильно проверить SSL.
Он отлично работает, если я получаю тот же URL-адрес в lynx, который обычно жалуется на наличие ошибок SSL. Но я не могу просто использовать Lynx для этой тестовой жгуты, если только не могу найти способ заставить Tornado AsyncHTTPClient использовать Lynx вместо libcurl. И, похоже, не имеет никакого смысла, что установка самоподписанного сертификата удовлетворяет Lynx, но не завитка.
Я использую Ubuntu 12.04 LTS в VirtualBox с поддержкой Vagrant; он имеет завиток 7.22.0. Прокси-сервер, завершающий SSL, - это nginx/1.3.13, запущенный на том же компьютере, и имя домена указывается на 127.0.0.1 записью в /etc/hosts.
Любые подсказки о том, что может быть проблемой? Спасибо.