记一次失败的reGeorg使用,解决SSL证书验证问题

本文讲述了作者在使用reGeorg代理访问HTTPS网站时遇到证书验证失败的问题,通过查找解决方案并修改urllib3配置,成功避免了证书验证错误,但后续因权限限制导致访问失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x01 背景

        最初的目的是想要使用云主机进行代理访问GitHub等网站,因此想到了reGeorg代理。 但是云主机网站使用的是HTTPS协议,在Python 2.7.5版本上运行reGeorg就遇到了异常,打开一个 https要验证ssl证书,目标网站证书是自签名的证书时就会抛出此异常。

0x02 过程

1、先看看报错

[SSL: CERTIFICATE_VERIFY_FAILED]

然后根据报错去百度,查了很多种方法发现都不适合用在 reGeorgSocksProxy.py 文件中。

因为reGeorgSocksProxy.py使用了urllib3模块,我就根据urllib3作为关键字搜索证书验证的问题。最终在以下网址找到了答案。

忽略使用urllib3进行的证书验证-python黑洞网 (pythonheidong.com)https://www.pythonheidong.com/blog/article/956774/85a4f0bacfa97d88843b/

c = urllib3.HTTPSConnectionPool('10.0.3.168', port=9001, cert_reqs='CERT_NONE',
                                assert_hostname=False)
c.request('GET', '/')

2、开始修改,搜索urllib3.HTTPSConnectionPool关键字。

原代码:

if o.scheme == "http":
        httpScheme = urllib3.HTTPConnectionPool
    else:
        httpScheme = urllib3.HTTPSConnectionPool

    conn = httpScheme(host=httpHost, port=httpPort)
    response = conn.request("GET", httpPath)

修改后:

if o.scheme == "http":
        httpScheme = urllib3.HTTPConnectionPool
        conn = httpScheme(host=httpHost, port=httpPort)
        response = conn.request("GET", httpPath)
    else:
        httpScheme = urllib3.HTTPSConnectionPool(host=httpHost,port=httpPort,cert_reqs='CERT_NONE',assert_hostname=False)
        conn = httpScheme
        response = conn.request("GET", httpPath)
print(response.status)

使用效果:

 

[SSL: CERTIFICATE_VERIFY_FAILED]的报错没有了 ,但是因为访问响应码为500,依然访问不成功,后面排查发现,因为文件是用www权限上传的,网站禁用了很多函数,因此device.php无法正常解析。到此结束。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值