2016-07-27 25 views
0

openssl apiを使用してSSL接続を作成している間に、すべての証明書とキーがロードされるSSL_CTXコンテキストオブジェクトが作成されます。 ピア検証を設定するにはOpenSSLへのCA証明書のロード

、我々はSSL_CTX_load_verify_locations APIを使用してCA証明書をロード(CAは、ファイルに格納されている)

しかし、今、私の場合はCAがファイルにない、私はX509 *issuerCertを持っています。 SSL_CTXオブジェクトにこれを設定する方法は?issuerCert

私はこれを見つけた: - C++/OpenSSL: Use root CA from buffer rather than file (SSL_CTX_load_verify_locations)

を上記の溶液では、我々はSSL_CTX_get_cert_storeを使用してX509_STORE *を作成し、最終的にそれにX509 *issuerCertを追加しています。

この証明書をX509_STORE *に追加すると、ここで混乱します。その証明書情報はSSL_CTXにどのようにリンクされますか?

最終的にすべての検証(ハンドシェーク)がシーンの背後で行われるSSL_CTXSSL_connectを渡します。 0xSSL_CTX_load_verify_locationsの代わりにSSL_CTX_get_cert_storeを使用すると、CA証明書情報 はSSL_connectにどのように届くのでしょうか?

答えて

1

上記の溶液では、 SSL_CTX_get_cert_storeを使用して* X509_STOREを作成しているし、最終的にそれにX509 * issuerCertを追加します。

SSL_CTX_get_cert_storeを使用して証明書ストアを作成していません。 SSL_CTXの一部である証明書ストアへのポインタを取得しています。証明書ストアに対する更新はSSL_CTXに反映されます。 APIにはSSL_CTXを引数として持つ次の構文があります。

X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *ctx); 
+0

Thanx。あなたが私をここで助けることができるかどうか見てください[link](http://stackoverflow.com/questions/38655411/how-to-convert-x509-certificate-to-stack-ofx509-name/38662865#38662865) – User1234

関連する問題