Por que o curl não reconhecerá um certificado SSL autoassinado?

Copiei o arquivo PEM para / usr / local / share / ca-certificates / e executei update-ca-certificates e verifiquei que o certificado resultante agora está incluído em /etc/ssl/certs/ca-certificates.crt, que é o arquivo impresso por curl-config --ca. Também verifiquei que o certificado impresso por openssl s_client -connect example.com:443 era idêntico ao meu arquivo PEM. E ainda assim continuo a receber a mensagem "erro: 14090086: rotinas SSL: SSL3_GET_SERVER_CERTIFICATE: verificação de certificado falhou". Isso acontece mesmo se eu usar a opção --cacert do curl como descrito emhttp://curl.haxx.se/docs/sslcerts.html para dizer qual certificado usar.

Ele funciona se eu desabilitar a verificação de certificado completamente com o curl -k, mas não quero fazer isso porque estou tentando escrever um arnês de teste que deveria testar o SSL corretamente.

Ele funciona bem se eu acessar o mesmo URL no lynx, que normalmente reclama se houver algum erro SSL. Mas eu não posso simplesmente usar o Lynx para este equipamento de teste, a menos que eu possa encontrar alguma maneira de fazer o AsyncHTTPClient do Tornado usar o Lynx ao invés do libcurl. E não parece fazer sentido que instalar o certificado auto-assinado satisfaça o Lynx, mas não enrole.

Estou usando o Ubuntu 12.04 LTS em um VirtualBox movido a Vagrant; tem onda 7.22.0. O proxy de terminação SSL é o nginx / 1.3.13 em execução na mesma máquina e o nome do domínio é apontado para 127.0.0.1 por uma entrada em / etc / hosts.

Qualquer pista sobre o que pode ser o problema? Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion