我正在尝试让gsutil
在我的计算机上工作,但它总是因以下错误而失败:
ssl.SSLError: [Errno 185090050] _ssl.c:358: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
对于其他python应用程序,有很多关于此错误的帖子,其中解决方案涉及编辑源代码。如果源代码是问题,那么gsutil
开发人员需要了解它,但他们不会宣传用户如何发布错误。
我可能在安装gsutil
时犯了一个错误。也许我需要获得证书并进行设置?但我不知道该怎么做。
我确实通过在.boto
文件中禁用服务器身份验证来解决这个问题。但是为了安全起见,我更愿意进行身份验证。
希望有些人可以帮助我解决这个问题。
答案 0 :(得分:2)
部分更新将解决问题
方法1 如果你使用gsutil源,那么
仅更新httplib2包 https://github.com/httplib2/httplib2
或者
仅更新httplib2包中的证书 https://github.com/httplib2/httplib2/blob/master/python2/httplib2/cacerts.txt
方法2
将系统证书指定给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
注意: 最佳使用最新的gsutil和Python 2.7.X
答案 1 :(得分:-1)
我今天在编写Web应用程序时在Linux机器上遇到了这个问题。值得一提的是,这是我的解决方案:
chmod a+r /usr/lib/python2.7/site-packages/httplib2-0.9.2-py2.7.egg/httplib2/cacerts.txt