内部网络上的Python SSL验证

时间:2017-11-02 03:51:07

标签: python-2.7 ssl

我在公司工作,希望让我的脚本连接到我的团队的内部页面并从中提取数据,我的脚本可以连接到我们的外部页面,但是内部任何内容都会返回一个身份验证错误,尽管这些相同的证书正在被我的浏览器使用

我用什么来收集证书:

certfile = wincertstore.CertFile()
certfile.addstore("CA")
certfile.addstore("ROOT")
atexit.register(certfile.close)

#when looking at which certs are added, I see the ones I need to use are being pulled

如何定义和包装套接字:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket(s,ca_certs=certfile.name, cert_reqs=ssl.CERT_REQUIRED)

连接方法:

def get_site(site):
    response = urllib2.urlopen(site)
    get_site.html = response.read()
    return get_site.html

因为我在Windows上,我使用的是wincertstore - 但除此之外我想要解决这个问题,而不必为了便携性而下载其他模块。

尝试连接到内部网站时,收到此错误:

File "C:\Python27\lib\urllib2.py", line 556, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 401: Unauthorized

我的两个问题是:1)这是否会在服务器端失效,或者这可能是在客户端?(或者是那种情境?)2)如果这是在我的结束,在内部网页上成功连接,我缺少什么?

我已经阅读了wincertstore,ssl,socket和urllib2文档,但找不到任何引用此场景或其他问题的人与同一场景中的人,只有一些模糊相关的问题,但最终在我的情况下。

0 个答案:

没有答案