c - 如何在 C 中验证 X509 证书

标签 c openssl certificate x509certificate x509

我有一个 X509 格式的证书。这是一个函数中的输入参数。 我想做的是验证证书的有效性。 如何做呢?

X509_verify_cert();

我找到了这个函数,但是它不接受 X509* 证书,它接受 X509_store 而我只有一个 X509。

谢谢 最好的问候。

最佳答案

我在这里只是为了发布我在上述评论中找到的答案。

我没有证书链,所以在我所做的工作中,我只有一个由我以编程方式生成的证书。我想检查它的有效性,所以我创建了以下函数,它在其他地方检查证书本身以验证它的有效性。

void check_certificate_validaty(X509* certificate)
{
    int status;
    X509_STORE_CTX *ctx;
    ctx = X509_STORE_CTX_new();
    X509_STORE *store = X509_STORE_new();

    X509_STORE_add_cert(store, certificate);

    X509_STORE_CTX_init(ctx, store, certificate, NULL);

    status = X509_verify_cert(ctx);
    if(status == 1)
    {
        printf("Certificate verified ok\n");
    }else
    {
        printf("%s\n", X509_verify_cert_error_string(ctx->error));
    }
}

希望这对某人有帮助:)

关于c - 如何在 C 中验证 X509 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836484/

相关文章:

linux - 我的 ssl 证书不受信任

python-3.x - 无法获取本地颁发者证书 mac OS

ssl - 是否可以从 pgp 公钥/私钥创建 ssl 证书?

powershell - 使用现有的根证书颁发机构签署证书

amazon-web-services - AWS Cert Mgr - 如何创建根 CA 证书?

c - 有没有办法让一个数组在 c 中保存其他数组?

c - 全局化 2 个小型阵列如何导致性能显着下降?

检查输入是否存在可能的 Int 溢出

c++ - 通过 C ABI 通过 void 指针传递 C++ 对象(可能具有多重虚拟继承)

java - 将证书和私钥加载到 Java KeyStore 中