使用python验证SSL中的对等体
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用python验证SSL中的对等体,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2047字,纯文字阅读大概需要3分钟。
内容图文
![使用python验证SSL中的对等体](/upload/InfoBanner/zyjiaocheng/701/ac4faa2eae7b4b91811d9200af5634bb.jpg)
我试图找出如何在python中验证服务器的自签名证书.我在谷歌找不到太多数据.我还想确保服务器url
提前感谢任何见解.
解决方法:
从评论到我的第一个回复,我发现存在一个普遍的误解,即“验证证书意味着什么”.我将尝试在这里写一个简短的解释来消除一些幻想.
证书验证是针对某些加密签名检查证书元数据上的签名(即主题,有效期,扩展等).
如果您拥有的所有验证都是自签名证书,则无法将其与具有完全相同元数据的另一个自签名证书区分开来,除非您事先知道密钥证书的密钥.并且不要忘记您建立所有这些验证程序以取消具有此预共享知识的要求.通过定期证书验证,您无法完全删除具有某些预共享知识的要求,这是一组第三方证书,也称为“CA证书”.由于这些知识是预先共享的,因此这些证书可能是自签名的,但请记住,您已收到有关这些证书的有效性的信息,而不是来自验证过程,而是来自某些外部知识.
如果在对等体之间分配了一组受信任的“CA证书”,则可以使用这些证书签署其他证书,并根据可信CA的预共享知识检查签名.
但是,如果您没有关于自签名证书的其他知识,除了证书本身,您不能对该特定证书的信任做出任何假设,因为它可以由一些邪恶的黑客以及您值得信赖的服务器发布.
在实施任何类型的证书验证过程之前,请获取有关Man in the middle attack,Public key infrastructure和Public key cryptography的一般知识.
请理解,对自签名证书的盲目验证不会保护您,甚至不会保护您自己网络中的聪明黑客,甚至不会考虑一般的互联网安全.
编辑:问题作者澄清说他实际上正在寻找如何使用M2Crypto绑定验证证书上的verisign(或其他CA)签名.这是两个例子:
from M2Crypto import X509, SSL
# manual validation of a signature on a certificate using a given CA cert:
ca = X509.load_cert('/path/to/ca_cert.pem')
cert = X509.load_cert('certificate_to_validate.pem')
print "Verification results:", cert.verify(ca.get_pubkey())
# adding a given CA cert to the SSL Context for verification
ctx = SSL.Context()
# load a certificate from file
ctx.load_verify_locations(cafile='/path/to/ca_cert.pem')
# or use all certificate in a CA directory
ctx.load_verify_locations(capath='/path/to/ca/dir')
# or you can specify both options at the same time.
如果要使用具有许多CA证书的目录(通常更方便),则必须将每个证书重命名为< hash> .0其中< hash>是证书主题的哈希值(使用openssl x509 -noout -hash -in cert.pem获得).
内容总结
以上是互联网集市为您收集整理的使用python验证SSL中的对等体全部内容,希望文章能够帮你解决使用python验证SSL中的对等体所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。