PEM ファイルを /usr/local/share/ca-certificates/ にコピーして update-ca-certificates を実行したところ、結果の証明書が /etc/ssl/certs/ca-certificates.crt に含まれていることを確認しました。 curl-config --ca によって出力されたファイル。また、openssl s_client -connect example.com:443 によって出力された証明書が PEM ファイルと同一であることも確認しました。それでも、「エラー: 14090086: SSL ルーチン: SSL3_GET_SERVER_CERTIFICATE: 証明書の検証に失敗しました」というメッセージが引き続き表示されます。これは、 http: //curl.haxx.se/docs/sslcerts.html で説明されているように、curl の --cacert オプションを使用して使用する証明書を指定しても発生します。
curl -k を使用して証明書の検証を完全に無効にすると機能しますが、SSL を適切にテストすることになっているテスト ハーネスを作成しようとしているため、そうしたくありません。
lynx で同じ URL にアクセスすると問題なく動作しますが、SSL エラーがあると通常エラーが発生します。しかし、Tornado の AsyncHTTPClient で libcurl の代わりに Lynx を使用する方法を見つけられない限り、このテスト ハーネスに Lynx だけを使用することはできません。また、自己署名証明書をインストールすることで Lynx は満足するが、curl は満足しないということには意味がないようです。
Vagrant を搭載した VirtualBox で Ubuntu 12.04 LTS を使用しています。それはcurl 7.22.0を持っています。SSL ターミネーティング プロキシは同じマシンで実行されている nginx/1.3.13 であり、ドメイン名は /etc/hosts のエントリによって 127.0.0.1 を指しています。
何が問題なのか手がかりはありますか? ありがとう。