擅长:python、mysql、java
<p>您遇到的问题是由不受信任的SSL证书引起的。</p>
<p>像前面的注释中提到的@dirk一样,最快的修正是设置<code>verify=False</code>:</p>
<pre><code>requests.get('https://example.com', verify=False)
</code></pre>
<p>请注意,这将导致证书无法验证。<strong>这将使您的应用程序面临安全风险,例如中间人攻击。</strong></p>
<p>当然,运用判断。正如评论中提到的,这个<em>对于快速/一次性应用程序/脚本,<em>是可以接受的,但实际上不应该转到生产软件</em>。</p>
<p>如果仅跳过证书检查在您的特定上下文中是不可接受的,请考虑以下选项,最好的选项是将<code>verify</code>参数设置为一个字符串,该字符串是证书的<code>.pem</code>文件的路径(您应该通过某种安全方式获得该文件)。</p>
<p>因此,从2.0版开始,<code>verify</code>参数接受以下值,并使用它们各自的语义:</p>
<ul>
<li><code>True</code>:根据库自己的受信任证书颁发机构验证证书(注意:您可以通过Certifi库查看哪些根证书请求使用,Certifi库是从请求中提取的RCs的信任数据库:<a href="http://certifiio.readthedocs.org/en/latest/" rel="noreferrer" title="Certifi - Trust Database for Humans">Certifi - Trust Database for Humans</a>)。</li>
<li><code>False</code>:完全忽略证书验证。</li>
<li>用于验证证书的请求的CA_捆绑包文件的路径。</li>
</ul>
<p>来源:<a href="http://docs.python-requests.org/en/master/user/advanced/?highlight=ssl#ssl-cert-verification" rel="noreferrer">Requests - SSL Cert Verification</a></p>
<p>还要查看同一链接上的<code>cert</code>参数。</p>