首页

文章

如何验证在Python SSL证书

发布网友 发布时间:2022-03-03 18:03

我来回答

1个回答

热心网友 时间:2022-03-03 19:32

import os
import glob
from OpenSSL.SSL import Context, TLSv1_METHOD, VERIFY_PEER, VERIFY_FAIL_IF_NO_PEER_CERT, OP_NO_SSLv2
from OpenSSL.crypto import load_certificate, FILETYPE_PEM
from twisted.python.urlpath import URLPath
from twisted.internet.ssl import ContextFactory
from twisted.internet import reactor
from twisted.web.client import getPage
certificateAuthorityMap = {}
for certFileName in glob.glob("/etc/ssl/certs/*.pem"):
    # There might be some dead symlinks in there, so let's make sure it's real.
    if os.path.exists(certFileName):
        data = open(certFileName).read()
        x509 = load_certificate(FILETYPE_PEM, data)
        digest = x509.digest('sha1')
        # Now, de-plicate in case the same cert has multiple names.
        certificateAuthorityMap[digest] = x509
class HTTPSVerifyingContextFactory(ContextFactory):
    def __init__(self, hostname):
        self.hostname = hostname
    isClient = True
    def getContext(self):
        ctx = Context(TLSv1_METHOD)
        store = ctx.get_cert_store()
        for value in certificateAuthorityMap.values():
            store.add_cert(value)
        ctx.set_verify(VERIFY_PEER | VERIFY_FAIL_IF_NO_PEER_CERT, self.verifyHostname)
        ctx.set_options(OP_NO_SSLv2)
        return ctx
    def verifyHostname(self, connection, x509, errno, depth, preverifyOK):
        if preverifyOK:
            if self.hostname != x509.get_subject().commonName:
                return False
        return preverifyOK
def secureGet(url):
    return getPage(url, HTTPSVerifyingContextFactory(URLPath.fromString(url).netloc))
def done(result):
    print 'Done!', len(result)
secureGet("https://google.com/").addCallback(done)
reactor.run()

这个验证要安装 Twisted 库。

当然这样的库好多,如:pycurl,requests,M2Crypto

import requests
requests.get('https://somesite.com', cert='/path/server.crt', verify=True)

表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 嘴唇上有黑印用蜜蜡和棉线去除了胡须 软柿子的热量 孕妇可以吃软柿子吗不是西红柿 脆柿子和软柿子的区别 脆柿子好还是软柿子好 软柿子可以多吃吗 “鱼悬洁白振清风”的出处是哪里 用大自然的声音评课好吗? 妇产科博士找超声科工作容易吗 怎能把微信6.2.0版本换回6.1.2版 微信群6.2.4怎么增加人数上限 微信6.2.2如何备份手机通讯录 电脑桌面图标不能放大? 有什么好用的识图软件 识图认人哪个软件最好 手机识图软件什么软件能识别图片位置 小米手机自动锁屏时间怎么修改 小米手机屏幕锁定时间设置教程 能举起100斤算大力吗 中医美容专业是什么 中医美容证有什么用 单声道音频什么意思(开启单声道音频有什么好处) 单声道音频是什么,有什么用处? 户口还未迁移到婆家 娘家户口怎么就没了呢 我结婚没有迁户口,现在娘家也没有怎么办 没领证生的孩子一般会判给谁 没领证生的孩子会判给谁 信用卡卡种有哪些 找一首古风歌曲 男声 低配电脑装w10还是w7流畅 电脑配置低装win7还是win10好 低配电脑适合装WIN7系统还是WIN10系统? ...500s-15isk这个联想笔记本的内存条尺寸是什么型号的有没有知道的... 越快越好.怎样减肥.而且胸部不缩水 请问徐闻县海安长途汽车客运站客服是多少? 过了平台期还会瘦吗 悦耳的意思悦耳的解释 重庆师范大学应用心理学专业的权威性如何? 打印机laserjetm1136mfp怎样设置无线打印 经典电影赏析之1:《精武英雄》 做数据分析行业考什么证书比较有含金量? vivo手机忘了密码如何解锁 开机时显示要激活windows怎么解决? 激活windows系统需怎样操作? 电脑设置以激活windows 是怎么回事 激活windows转到设置以激活windows vivo x9手机变卡顿怎么办 vivo手机卡顿怎么办 如何使用手机开美的空调 怎么用手机app遥控器,开美的空调? 手机玩游戏很卡怎么办,vivo手机 vivoiqoo手机越来越卡该怎么办办? 美的空调如何用美居APP实现智能控制? 使用vivo手机变卡顿怎么办 美的空调怎么用手机开启 怎么用手机遥控美的空调 美的空调怎么远程遥控? 我家的美的空调要在手机上控制怎么设置 美的空调手机怎么控制 美的空调冷静星二代怎样用手机控制? 怎么查询自己实名认证了几个 怎么看自己实名认证了几个 怎么查认证了几个 如何查询自己实名认证了多少个? 怎样能查实名认证了哪几个? 速热热水器怎样自行安装? 搜狗输入法怎么把状态栏放到桌面 如何把搜狗输入法的工具条显示在桌面上 怎样安装即热式热水器 如何让搜狗输入法在我的桌面上显示并能够得到应用? 即热式电热水器安装方法以及注意事项 怎样才能让我的搜狗输入法显示在桌面的任务栏上 速热水器安装方法 怎样让搜狗状态栏一直显示在桌面 速热电热水器怎样安装水管和电 win7系统,怎么把搜狗输入法悬浮在桌面 即热式热水器安装方法,即热式热水器要如何安装 如何让搜狗拼音的桌面的皮肤那个标志一直显示在桌面上? 即热式热水器安装方法 即热式电热水器安装留意事项: 怎么不让搜狗输入法搜狗输入法显示在桌面
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com