bre*_*000 10 python ssl python-requests
我想使用Python请求来获取公司内部网页的内容(例如,https://internal.com).我可以在浏览器中看到这个页面,我可以"查看证书".
所以现在我想获得带有请求的网页,所以我这样做:
import requests
requests.get('https://internal.com')
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个SSLError:
SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Run Code Online (Sandbox Code Playgroud)
所以我想我需要指定一个证书文件:
requests.get('https://example.com', cert=('/path/server.crt', '/path/key'))
Run Code Online (Sandbox Code Playgroud)
但是如何找到cert文件的路径?查看网页时,我可以从Chrome或IE获取此信息吗?或者我错过了一些更基本的东西?
该cert参数用于客户端身份验证.如果您想向服务器证明您的身份.如果这是问题,您将在服务器上收到错误.
您需要的是服务器端身份验证.服务器必须证明它的身份.当您连接到内部服务器时,请求在其提供的捆绑包中没有此服务器证书,因此无法确认服务器标识.您必须使用内部CA-bundle提供请求.要执行此操作,您必须先从浏览器中提取它.
来自文档:
You can also pass "verify" the path to a "CA_BUNDLE" file for private certs.
You can also set the "REQUESTS_CA_BUNDLE" environment variable.
Run Code Online (Sandbox Code Playgroud)
Chrome(简短版):
chrome://settings/certificatesexport您还可以通过以下方式访问证书管理器:
(chrome的步骤,与其他浏览器非常相似)
| 归档时间: |
|
| 查看次数: |
21733 次 |
| 最近记录: |