如何找到路径到SSL证书文件?(How to find the path to a SSL cert

2019-07-19 12:49发布

我想使用Python请求获得公司内部网页的内容(比如, https://internal.com )。 我可以在浏览器中看到这个页面,我可以“查看证书”。

所以现在我想有请的网页,所以我做的:

import requests
requests.get('https://internal.com')

但后来我得到一个SSLError:

SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

所以我想我需要指定一个证书文件:

requests.get('https://example.com', cert=('/path/server.crt', '/path/key'))

但我怎么找到路径证书文件? 查看网页时,我可以从Chrome或IE这个信息? 还是我失去了一些更基本的?

Answer 1:

cert的参数是客户端验证。 如果你想证明你的身份到服务器。 如果这是问题,你会得到在服务器上的错误。

你需要的是服务器端的认证。 服务器必须证明它的身份。 当你正在连接到内部服务器的请求并没有在它提供的捆绑,因此不能确认身份的服务器该服务器证书。 你必须提供与您的内部CA-捆绑请求。 要做到这一点,你必须首先从您的浏览器将其解压缩。

从文档:

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.

铬(短版):

  • 把这个在您的网址吧chrome://settings/certificates
  • 选择标签“权威”
  • 寻找你的内部CA,并单击export
  • 最好的格式是“Base64编码证书链”
  • 保存到一个位置,在那里你会找到它
  • 现在你可以使用`request.GET中(URL,验证=)

您还可以通过访问证书管理器:

(铬步骤,非常相似于其他浏览器)

  • 前往设置
  • 点击“显示高级设置”底部
  • HTTPS / SSL - > “管理证书”
  • 往上看


文章来源: How to find the path to a SSL cert file?