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を満足させるが、カールを満足させないことは意味がないようです。
Vagrantを利用したVirtualBoxでUbuntu12.04LTSを使用しています。カール7.22.0があります。 SSL終了プロキシは同じマシンで実行されているnginx/13.13であり、ドメイン名は/ etc/hostsのエントリによって127.0.0.1を指します。
何が問題なのかについての手がかりはありますか?ありがとう。
cURL
を使用して CA署名付き証明書 を使用していないHTTPS
サイトを取得すると、次の問題が発生します。
curl https://example.selfip.com
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
-k
オプションを使用してこれを簡単に克服できますが、より安全で永続的な解決策があります。
ステップ1OpenSSL
インストールで使用するディレクトリを特定します。
openssl version -d
OPENSSLDIR: "/usr/lib/ssl"
ステップ2
そのディレクトリに移動し、ディレクトリの内容を一覧表示します。 certs
というディレクトリが表示されます。
cd /usr/lib/ssl && ls -al
ステップ3
そのディレクトリに移動します。
cd certs
ディレクトリの内容を一覧表示します。シンボリックリンクから、証明書が実際に/usr/share/ca-certificates
に格納されていることがわかります。
ステップ4/usr/share/ca-certificates
ディレクトリに移動し、そこに自己署名証明書を追加します(例:your.cert.name.crt)
ステップ5/etc
ディレクトリに移動し、ファイルca-certificates.conf
を編集します。
root@ubuntu:# cd /etc
root@ubuntu:# nano ca-certificates.conf
your.cert.name.crt
をファイル(ca-certificates.conf
)に追加して保存します。
最後のステップ:
プログラムupdate-ca-certificates –fresh
を実行します。
注:コマンドを実行する前に、/etc/ssl/certs
をバックアップすることをお勧めします。
root@ubuntu:# update-ca-certificates --fresh
Clearing symlinks in /etc/ssl/certs...done.
Updating certificates in /etc/ssl/certs....done.
Running hooks in /etc/ca-certificates/update.d....done.
ターゲットHTTPSサイトでcurlを使用してテストすると、正常に機能するはずです。