如何在Python中验证没有根证书的SSL证书?
我想验证服务器的SSL证书,该服务器在根CA证书和服务器证书之间有一个中间证书 If已尝试使用'requests'和'httplib'包来验证证书,如果我向根证书提供路径(或在'requests'的情况下更新'requests\u CA\u BUNDLE'环境变量),则两者都会成功 但是,如果我只提供服务器证书或中间证书的路径,验证将失败。我想知道“requests”或“httplib”或Python中的任何其他包是否有任何方法可以仅使用服务器或中间CA证书而不尝试追溯到根CA证书来成功验证SSL证书 如果Python很棘手,openssl或类似的linux工具是否也允许这样做 如何在Python中验证没有根证书的SSL证书 您可以使用一个从属CA而不是根CA来验证证书链。这叫做修路,有一个 您还可以直接使用终端实体服务器证书。只需将您的信任建立在它之上,而不是根CA或从属CA 如果不能使用根CA或从属CA,则必须转到另一个方案如何在Python中验证没有根证书的SSL证书?,python,ssl,https,openssl,pyopenssl,Python,Ssl,Https,Openssl,Pyopenssl,我想验证服务器的SSL证书,该服务器在根CA证书和服务器证书之间有一个中间证书 If已尝试使用'requests'和'httplib'包来验证证书,如果我向根证书提供路径(或在'requests'的情况下更新'requests\u CA\u BUNDLE'环境变量),则两者都会成功 但是,如果我只提供服务器证书或中间证书的路径,验证将失败。我想知道“requests”或“httplib”或Python中的任何其他包是否有任何方法可以仅使用服务器或中间CA证书而不尝试追溯到根CA证书来成功验证SS
这并不能直接回答你的问题。。。您可以做的一件事是,放弃整个PKI或PKIX机制 这个原则仍然适用,而且没有办法回避它。在PKIX中,您需要CA的根证书。锁定时,您需要知道主机的公钥 如果您不具备主机公钥的先验知识,则可以使用方案。它类似于工具的工作方式 固定对于企业应用程序非常有效。在企业中,组织发布自己的证书,因此它知道公开密钥是什么。他们甚至可以运行自己的私人PKI。由于组织事先知道这些信息,因此应用程序的构建附带了必要的证书。没有必要相信第一次使用 一个重要的提示,有严重的缺陷。最具破坏性的是(1)覆盖,攻击者可以破坏已知良好的引脚集;以及(2)当销组损坏时,错误报告将被禁用。RFC没有很好地列出安全注意事项 也可以看彼得·古特曼的。他讨论了所有这些事情
如果您尝试了“请求”和“httplib”包
不幸的是,我不知道你需要哪个图书馆来做这些事情。可能没有可用的库。我现在不能接受你的答案,主要是因为你提到的许多事情我所知甚少,因此我需要一些时间才能尝试你的建议。但我肯定会投票支持你的答案。谢谢:)@akash12300-别担心。你陷入了深层次的安全工程问题。读古特曼的书。不要太快接受答案。给大家时间回答。你可能会发现一个更好的。