c で openssl を使用して証明書を検証しています。自己署名証明書エラーをスキップする方法はありますか? URL証明書が無効/期限切れ/不一致のすべてのサイトでそのエラーが発生し、他のエラーを検出できません。
そして、関数を使用して
SSL_CTX_load_verify_locations(ctx,0,CA_LIST))
CA_LIST をロードします。それは正確に何をしますか?
c で openssl を使用して証明書を検証しています。自己署名証明書エラーをスキップする方法はありますか? URL証明書が無効/期限切れ/不一致のすべてのサイトでそのエラーが発生し、他のエラーを検出できません。
そして、関数を使用して
SSL_CTX_load_verify_locations(ctx,0,CA_LIST))
CA_LIST をロードします。それは正確に何をしますか?
ルートまたは自己署名証明書がピアによって送信された証明書リストに存在するが、同じものがトラストストアにロードされていない場合、証明書チェーンのエラー自己署名証明書が発生します。
はSSL_CTX_load_verify_locations(ctx,0,CA_LIST))
、CA_LISTに記載されているパスに存在するCAをロードしようとします。
関数プロトタイプはintですSSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);
OpenSSLヘルプページの説明:
「CApathがNULLでない場合、PEM形式のCA証明書を含むディレクトリを指します。ファイルにはそれぞれ1つのCA証明書が含まれます。ファイルはCAサブジェクト名のハッシュ値によって検索されるため、使用可能である必要があります。複数ある場合同じ名前のハッシュ値を持つCA証明書が存在する場合、拡張子は異なる必要があります(9d66eef0.0、9d66eef0.1など)。検索は、証明書の他のプロパティに関係なく、拡張子番号の順序で実行されます。c_rehashを使用します。必要なリンクを作成するためのユーティリティ。CApathの証明書は、必要な場合にのみ検索されます。たとえば、証明書チェーンを構築するときや、ピア証明書の検証を実際に実行するときなどです。」
詳細については、OpenSSLページのこちらをご覧ください。