【发布时间】:2019-08-09 14:23:00
【问题描述】:
我对 python 很陌生,似乎无法弄清楚如何完成这项任务。我想连接到一个网站并提取证书信息,例如颁发者和到期日期。
我已经看遍了,尝试了各种步骤,但因为我是新手,所以我迷失在套接字、包装器等中。
更糟糕的是,我处于代理环境中,这似乎使事情变得非常复杂。
有谁知道我如何在代理后面连接和提取信息?
【问题讨论】:
标签: python ssl python-requests pyopenssl m2crypto
我对 python 很陌生,似乎无法弄清楚如何完成这项任务。我想连接到一个网站并提取证书信息,例如颁发者和到期日期。
我已经看遍了,尝试了各种步骤,但因为我是新手,所以我迷失在套接字、包装器等中。
更糟糕的是,我处于代理环境中,这似乎使事情变得非常复杂。
有谁知道我如何在代理后面连接和提取信息?
【问题讨论】:
标签: python ssl python-requests pyopenssl m2crypto
正如this 中解释的那样回答:
您仍然可以将服务器证书与 ssl.get_server_certificate() 函数,但它在 PEM 中返回它 格式。
导入ssl print ssl.get_server_certificate(('server.test.com', 443))从这里开始,我将使用 M2Crypto 或 OpenSSL 来读取证书并获取值:
# M2Crypto cert = ssl.get_server_certificate(('www.google.com', 443)) x509 = M2Crypto.X509.load_cert_string(cert) x509.get_subject().as_text() # 'C=US, ST=California, L=Mountain View, O=Google Inc, CN=www.google.com'
【讨论】:
ValueError: too many values to unpack (expected 2)
Python SSL 库不处理代理。
【讨论】: