gsutil ssl.SSLError:[Errno 185090050]

Posted

技术标签:

【中文标题】gsutil ssl.SSLError:[Errno 185090050]【英文标题】:gsutil ssl.SSLError: [Errno 185090050] 【发布时间】:2015-10-28 22:53:01 【问题描述】:

我试图让gsutil 在我的机器上工作,但它总是失败并出现以下错误:

ssl.SSLError: [Errno 185090050] _ssl.c:358: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib

对于其他 python 应用程序,有很多关于此错误的帖子,其中解决方案涉及编辑源代码。如果源代码是问题,那么gsutil 开发人员需要了解它,但他们不会宣传用户将如何发布错误。

我可能在安装gsutil 时出错。也许我需要获得证书并进行设置?但我不知道该怎么做。

我确实设法通过在.boto 文件中禁用服务器身份验证来解决这个问题。但是为了安全起见,我更愿意让身份验证工作。

希望有一些人可以帮助我解决这个问题。

【问题讨论】:

您可以将 gsutil 错误发布到 github.com/GoogleCloudPlatform/gsutil/issues 您能否提供运行 gsutil -d 的输出。请去掉授权标头。如果您不想在公共论坛上发布它,请发送至 gs-team@google.com。 【参考方案1】:

部分更新将解决问题

方法一 如果你使用 gsutil 源代码,那么

仅更新 httplib2 包 https://github.com/httplib2/httplib2

或者

仅更新 httplib2 包内的证书 https://github.com/httplib2/httplib2/blob/master/python2/httplib2/cacerts.txt

方法二

为 boto.xt 文件指定系统证书 https://github.com/fout/fout/blob/master/review/google_snippet_status/templates/boto.xt

https_validate_certificates = True
ca_certificates_file = /etc/ssl/certs/ca-bundle.crt

参考:http://boto.cloudhackers.com/en/latest/boto_config_tut.html

**注意:** 就我而言: 如果我使用像“ca_certificates_file = system”这样的系统,它会给出一些套接字错误

    Caught socket error, retrying: [Errno 185090050] _ssl.c:330: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
Retrying request to url <https://www.googleapis.com/storage/v1/b/adx-rtb-freakout-vd/o?   projection=full&prettyPrint=True&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&prefix=snippet_status&maxResults=500&delimiter=%2F&alt=json> after  connection break.
Caught socket error, retrying: [Errno 185090050] _ssl.c:330: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib

连接中断后重试对 url https://www.googleapis.com/storage/v1/b/adx-rtb-freakout-vd/o?projection=full&prettyPrint=True&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&prefix=snippet_status&maxResults=500&delimiter=%2F&alt=json 的请求。

注意:最好使用最新的 gsutil 和 Python 2.7.X

【讨论】:

【参考方案2】:

我今天在编写 Web 应用程序时在我的 Linux 机器上遇到了这个问题。对于它的价值,这是我的解决方案:

chmod a+r /usr/lib/python2.7/site-packages/httplib2-0.9.2-py2.7.egg/httplib2/cacerts.txt

【讨论】:

以上是关于gsutil ssl.SSLError:[Errno 185090050]的主要内容,如果未能解决你的问题,请参考以下文章

ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] 线程化时的 Gmail

Rails 3:OpenSSL::SSL::SSLError:主机名与服务器证书不匹配

Heroku上的OpenSSL :: SSL :: SSLError [重复]

pandas.read_csv 报ssl.SSLError

使用 Ruby on Rails 的 HTTP GET 请求:OpenSSL::SSL::SSLError

如何让 python 信任我服务器的 TLS 自签名证书:ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败