在linux上验证X.509证书

在linux上验证X.509证书,第1张

概述我刚开始使用X.509证书.谁能告诉我如何在linux上验证证书?用例是我的应用程序在之前的会话中下载了证书,我必须在开始新会话之前检查它是否仍然有效(即,在存储之后没有过期或撤销).我理解这里不可能有完整的样本,但任何指针都会有用.编辑:进一步调查显示另一个称为网络安全服务(NSS)的实用程序.在可用性方面,这与OpenSSL相比如何?此外,我正在寻找程序

我刚开始使用X.509证书.谁能告诉我如何在linux上验证证书?用例是我的应用程序在之前的会话中下载了证书,我必须在开始新会话之前检查它是否仍然有效(即,在存储之后没有过期或撤销).我理解这里不可能有完整的样本,但任何指针都会有用.

编辑:进一步调查显示另一个称为网络安全服务(NSS)的实用程序.在可用性方面,这与OpenSSL相比如何?此外,我正在寻找程序化解决方案,因为我将无法启动命令行实用程序.

最佳答案正如其他人提到的,您可以使用openssl验证.根据documentation,它还检查有效期.

从程序上来说,它可能意味着数小时搜索有点不好(或缺少)的文档,在整个网络上阅读代码示例,并且可能令人头疼.

要正确验证证书,您需要通知所有中间证书.通常您也会通知撤销列表(CRL),但这不是必需的.

那么,这就是你需要做的代码(OpenSSL):

> X509_STORE_new – 创建证书存储区;
> X509_STORE_CTX_new – 创建商店上下文;
> X509_STORE_add_cert – 将CA(和所有中介)证书添加到证书存储的可信列表中(注意:有一个查找/加载列表的函数);
> X509_STORE_add_crl – 将撤销的证书添加到证书库的CRL中(注意:与上面相同);
> X509_STORE_CTX_init – 初始化您的商店上下文,通知您的证书商店;
> X509_STORE_CTX_set_purpose – 如果需要,定义目的;
> X509_STORE_CTX_set_cert-告诉上下文您要验证的证书;
> X509_verify_cert – 最后,验证它;
> X509_STORE_CTX_cleanup – 如果要重用上下文来验证另一个证书,请将其清理并跳回(5);
>最后但并非最不重要的是,解除分配(1)和(2);

或者,可以使用X509_verify进行快速验证.但请注意,它仅对签名进行比较.

当我需要它时,花了我一整天的搜索,阅读和测试.然后我发现我需要的一切都在OpenSSL源代码中.因此,如果您需要一个示例,请直接访问openssl-xxx / apps / verify.c.

重要提示:永远不要使用MD5.要了解原因,请阅读Creating a rogue CA certificate. 总结

以上是内存溢出为你收集整理的在linux上验证X.509证书全部内容,希望文章能够帮你解决在linux上验证X.509证书所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存