0

openssl を使用してサーバー証明書をダウンロードするアプリケーションを作成しました。次に、libCURL でこの証明書を使用して、HTTPS 通信に通信しました。LibCRL が無効な証明書エラー (60) を返します。

libCURL サイトで検索したところ、「cacert.pem」ファイルを使用するように言われました。次に、オプション CURLOPT_CAINFO を「cacert.pem」に設定し、「CURLOPT_CAPATH」をダウンロードした証明書ファイルに設定します。その後、うまくいきました。

その後、ダウンロードした証明書にルート証明書がなく、そのルート証明書が「cacert.pem」ファイルに存在することがわかりました。

今私のクエリは

1) サーバーからルート証明書をダウンロードするには?

2) また、証明書を設定するためのベスト プラクティスを教えてください。

4

1 に答える 1

2

サーバーからルート証明書をダウンロードしないでください。インフラストラクチャの全体的なポイントは、信頼されたルート証明書のセットが既にあるということです。誰かがこのルート証明書で (直接的または間接的に) 署名した場合、その証明書を信頼できます。サーバーからルート証明書をダウンロードする場合、基本的に証明書の概念全体を削除することになり、HTTP を使用することもできます。

ただし、独自の証明書 (自己署名) を使用している場合は、別の方法があります。独自の CA を維持cacert.pemしてこの目的のために特別な証明書を作成するか、証明書のチェックを無効にすることができます (後者は、アプリケーションの安全性が低くなります!)。

libCURL のような標準バンドルに CA によって署名された証明書が含まれていないなど、高度なことを行っている場合は、cacert.pemこの背後にある理論を必ず読んでおく必要があります。

于 2013-08-19T13:10:30.763 に答える