我试图弄清楚如何使用M2Crypto,从X509证书的公共密钥版本验证信任链回到链条可能任意长时间的一组已知root CA之一。 SSL.Context模块看起来很有希望,除了我没有在SSL连接的上下文中这样做,而且我看不到如何使用传递给load_verify_locations的信息。

本质上,我正在寻找相当于:openssl验证pub_key_x509_cert的界面

M2Crypto中有类似的东西吗?

谢谢。

有帮助吗?

解决方案

有一个 修补 这可能需要稍微更新,并且需要单位测试才能让我检查一下。欢迎贡献!

另一种令人费解的方法是创建一个内存中的SSL会话,您可以在其中进行验证。这 扭曲的包装纸 有效地以这种方式工作;扭曲充当愚蠢的网络管道,而无需了解数据,M2Crypto加密/解密数据中的数据,在侧面进行证书验证。

其他提示

我已经修改了其他M2Crypto补丁程序,因此我们能够针对CA链验证X509证书,此外,它允许使用证书撤销列表(CRL)s。

使用M2Crypto允许链条验证的核心是在X509_Store_Context上公开“ verify_cert()”。基本流量是:

  1. 将您的CAS/CRL添加到X509_Store
  2. 使用X509_STORE_CONTEXT验证关注证书

我的补丁增强了CRL支持以及允许链验证。https://bugzilla.osafoundation.org/show_bug.cgi?id=12954#c2

我们正在使用此补丁作为纸浆的一部分,下面有一个Wiki页面,该页面分享了有关我们如何与链条进行验证的更多信息:https://fedorahosted.org/pulp/wiki/certchainverification

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top