1

リモート サーバーに接続し、自己署名証明書を使用するプログラムを作成しています。プログラムのいくつかのポイントで次のエラーが発生します。

Program received signal SIGSEGV, Segmentation fault.
0xb7ec3688 in X509_STORE_add_lookup () from /lib/i386-linux-gnu/libcrypto.so.1.0.0

この時点で:

    if (!SSL_CTX_load_verify_locations(
                ssl_ctx_p, "bundle_test.p12.pem", NULL))

そして別:

Program received signal SIGSEGV, Segmentation fault.
0xb7ec389e in X509_STORE_get_by_subject () from /lib/i386-linux-gnu/libcrypto.so.1.0.0

ここ:

ssl_ret = SSL_connect(ssl_p);

私はこれにかなり慣れていないので、何が問題なのかわかりません。問題をデバッグまたは把握するためのより良い方法を誰かが提案できれば、感謝します!

4

1 に答える 1

1

関数自体はあまり機能しません。この関数の内部ではなく内部でセグメンテーション違反を引き起こす可能性があるのX509_STORE_load_locations()は、ポインターの逆参照だけctx->cert_storeです。ssl_ctx_pが有効なコンテキストであり、 ではないことを確認してくださいNULL

int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
                const char *CApath)
        {
        return(X509_STORE_load_locations(ctx->cert_store,CAfile,CApath));
        }
于 2013-09-24T14:56:52.017 に答える