如何验证公钥是由您的私有 CA 颁发的?
我创建了一个 CA 证书,并用它来颁发公钥。 在将来的某个日期,我需要验证加载的证书是否由我的 CA 颁发。
如何使用 OpenSSL API (c++) 做到这一点?
I have created a CA cert, and used it to issue a public key.
At a date in the future, I need to verify that the certificate loaded was issued by my CA.
How do I do that with the OpenSSL API (c++)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我已将 verify.c (在 openssl/apps/ 中)减少到所需的最少功能。假设:cert和CA cert都是PEM格式文件。不需要 CRLS 或可信列表检查。
使用您的证书和 CA PEM 文件的路径调用 verify()。
I've reduced verify.c (in openssl/apps/) to the minimum functions required. Assumptions: cert and CA cert are both PEM format files. There are no CRLS or trusted list checks required.
Call verify() with the path to your cert and CA PEM files.
openssl verify -CAfile;命令会做你想做的事——尝试找到能做你想做的事的 API 是很痛苦的,所以我建议找到
openssl verify
常规。(如果您可以选择实现,gnutls 看起来很有前途:
但是 OpenSSL 已随处安装。)
The
openssl verify -CAfile <CA_cert_filename> <unknown_cert_filename>
command will do what you want -- it's miserable to try to find the API that will do what you want, so I'd suggest finding the source code for theopenssl verify
routine.(If you have choice of implementations, gnutls looks promising:
But OpenSSL is installed everywhere..)