擅长:python、mysql、java
<pre><code> botocore.vendored.requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
</code></pre>
<p>在大多数情况下,上面的错误通常与用于S3连接的CA包有关</p>
<p>可能的解决步骤:</p>
<p><strong><em>1。关闭SSL认证验证:</em></strong></p>
<pre><code>s3 = boto3.client('s3', verify=False)
</code></pre>
<p>如本<a href="https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html" rel="nofollow noreferrer">boto3 documentation</a>中所述,此选项关闭SSL证书的验证,但仍将使用SSL协议(除非use_SSL为False)进行通信</p>
<p><strong><em>2。检查是否设置了AWS\u CA\u BUNDLE环境变量:</em></strong></p>
<pre><code>echo $AWS_CA_BUNDLE
</code></pre>
<p>或</p>
<pre><code>export | grep AWS_CA_BUNDLE
</code></pre>
<p><strong><em>3。检查python环境中是否安装了certifi?:</em></strong></p>
<pre><code>pip list | grep certifi
</code></pre>
<p>根据上述命令的输出,您可能正在使用一个版本的certifi(它不是boto3的依赖项),在与s3端点通信时,该版本的证书验证已中断</p>
<p>您需要将OpenSSL版本或pin认证升级到稳定版本,如下所示:</p>
<pre><code>sudo pip uninstall certifi
sudo pip install certifi==2015.04.28
</code></pre>
<p>希望这有帮助</p>