Python - 请求 HTTP 库 SSL 密钥

Posted

技术标签:

【中文标题】Python - 请求 HTTP 库 SSL 密钥【英文标题】:Python - Requests HTTP Library SSL Key 【发布时间】:2015-10-23 01:06:59 【问题描述】:

我正在使用 requests 库来完成与 https 网站的通信。这很好用,我唯一的问题是,wireshark 不再像遵循此说明后那样在“解密的 SSL 数据”选项卡中捕获纯文本信息:

https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/

设置允许chrome和firefox将ssl密钥存储在文件中的环境变量,wireshark实时使用这个文件。

他们是我可以修改简单的 https 请求脚本的一种方式吗:

import requests
resp = requests.get("https://www.google.com", allow_redirects=True)

也像 chrome 和 firefox 一样将 ssl 密钥存储到文件中?

根据我对类似的 OpenSSL 实现的了解,您必须在内存中找到主密钥和会话密钥 - 从 cmd 运行时这是可行的还是实用的?

【问题讨论】:

请检查硒库 【参考方案1】:

openssl s_client -connect www.google.com:443 -showcerts

您将看到谷歌网站使用的所有证书。

【讨论】:

正在寻找私人会话密钥,而不是公共证书。【参考方案2】:

现在这似乎可以通过 Requests 实现。

我已经设置了SSLKEYLOGFILE=secrets.log,然后通过 requests.get() 运行了一个请求,secrets.log 现在填充了 TLS 机密。我正在使用 requests v2.25.1 和 urllib3 v1.26.3。

显然,OpenSSL 需要一段时间来提供提取密钥信息所需的 API,然后在 pyOpenSSL 中创建绑定以利用这些 API,然后将其冒泡到 urllib3。

更多详情请查看本期:https://github.com/psf/requests/issues/3674

【讨论】:

谢谢,这些信息看起来非常有用! 适用于 python 3.9 并请求 2.26.0,谢谢 :)

以上是关于Python - 请求 HTTP 库 SSL 密钥的主要内容,如果未能解决你的问题,请参考以下文章

jetty SSL如何与java密钥库和多个别名一起使用

WebLogic配置自己定义密钥库和SSL的操作手冊

12.17 Nginx负载均衡 12.18 ssl原理 12.19 生成ssl密钥对12.20 Nginx配置ssl

发送需要 SSL/TLS 的请求的正确 HTTP 响应是啥

用java做一个httpClient 发送https 的get请求,需要证书验证的那种,求大神指点一下!

JavaSE--网络安全之证书密钥密钥库等名词解释