私は SSL の専門家ではありません。SSL 関連の用語を間違って使用している場合はご容赦ください。何らかの理由で、curl が --cacert オプションを使用してこのサイトの証明書を提供している https でファイルをダウンロードできません。
https でアクセスできるイントラネット サイトがあります。信頼されていない (または自己署名した) SSL 証明書を受け入れた後、Firefox でこのサイトを開くことができます。このサイトの証明書を Firefox からファイルにエクスポートしました。/etc/pki/tls/certs からすべての証明書を削除したため、curl は --cacert オプションで指定されたファイル内の証明書以外の場所に証明書を見つけることができません。
--cacert オプションで証明書ファイルを指定して curl を実行すると、失敗します。
curl -v https://some-intranet-site.com/repodata/repomd.xml --cacert exported_certificate.cer
* Peer certificate cannot be authenticated with known CA certificates
curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details here: http://curl.haxx.se/docs/sslcerts.html
Google の証明書をエクスポートし、curl でhttps://gogole.comにアクセスしようとすると、次のように動作します。
curl https://google.com --cacert ~/dev/tmp/google.cert
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>
説明をいただけますか?
ありがとうございました。