如何在c / c ++(openssl)中验证任何类型的证书?

时间:2017-05-04 18:49:58

标签: c linux ssl ssl-certificate ca

我知道如何验证证书

  1. SSL_CTX_load_verify_locations(ctx, caName, caPath)加载CA证书,或创建X509_STORE并向其添加CA证书。
  2. 通过SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL)
  3. 启用SSL客户端进行对等验证

    通过这种方式,我们可以验证由加载的CA证书签名的所有证书。

    我想知道的事情:

    1。验证自签名证书

    如何按SSL_CTX_load_verify_locations(ctx, caName, caPath)加载多个CA证书?

    如何在上述功能中提供caPath?

    我尝试过:

    • 为每个CA证书创建一个软件,其名称由命令openssl X509 -in ca_file.pem -noout -subject_hash生成。
    • 这些软链接在名为 ca_path
    • 的同一文件夹中创建
    • 现在,我在上面的函数中将此 ca_path 作为caPath参数传递。

      我试图为50693e.pem, 50693e.0, 50693e之类的软链接使用不同类型的名称 哈希生成,但没有任何效果。

    2。验证由知名CA签名的证书

    我是否需要自己提供CA证书包以验证签名证书?

    openssl库是否会在握手过程中从CertificateServer响应中获取CA证书链(或者我有    做某事)?

    第3。如何让ssl客户端验证服务器证书的类型(由自己签名并由知名CA签名)?

0 个答案:

没有答案