ssl 如何解决安装gcloud时出现的'CERTIFICATE_VERIFY_FAILED'错误?

yjghlzjz  于 2022-12-27  发布在  其他
关注(0)|答案(4)|浏览(209)

我尝试在MacOs中安装gcloud,但是失败了。我尝试了两个python版本3.7.4和3.9.1,但是都有同样的问题。我如何安装gcloud?是否需要其他依赖项?

$ python --version
Python 3.9.1

$ sh install.sh --screen-reader=true
Welcome to the Google Cloud SDK!

To help improve the quality of this product, we collect anonymized usage data
and anonymized stacktraces when crashes are encountered; additional information
is available at <https://cloud.google.com/sdk/usage-statistics>. This data is
handled in accordance with our privacy policy
<https://cloud.google.com/terms/cloud-privacy-notice>. You may choose to opt in this
collection now (by choosing 'Y' at the below prompt), or at any time in the
future by running the following command:

    gcloud config set disable_usage_reporting false

Do you want to help improve the Google Cloud SDK (y/N)?  y

Traceback (most recent call last):
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/urllib3/connectionpool.py", line 667, in urlopen
    self._prepare_proxy(conn)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/urllib3/connectionpool.py", line 930, in _prepare_proxy
    conn.connect()
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/urllib3/connection.py", line 361, in connect
    self.sock = ssl_wrap_socket(
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/urllib3/util/ssl_.py", line 382, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/Users/joey/.pyenv/versions/3.9.1/lib/python3.9/ssl.py", line 500, in wrap_socket
    return self.sslsocket_class._create(
  File "/Users/joey/.pyenv/versions/3.9.1/lib/python3.9/ssl.py", line 1040, in _create
    self.do_handshake()
  File "/Users/joey/.pyenv/versions/3.9.1/lib/python3.9/ssl.py", line 1309, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1123)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/urllib3/connectionpool.py", line 724, in urlopen
    retries = retries.increment(
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/urllib3/util/retry.py", line 439, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='dl.google.com', port=443): Max retries exceeded with url: /dl/cloudsdk/channels/rapid/components-2.json (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1123)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/joey/Downloads/google-cloud-sdk/bin/bootstrapping/install.py", line 232, in <module>
    main()
  File "/Users/joey/Downloads/google-cloud-sdk/bin/bootstrapping/install.py", line 210, in main
    Install(pargs.override_components, pargs.additional_components)
  File "/Users/joey/Downloads/google-cloud-sdk/bin/bootstrapping/install.py", line 151, in Install
    _CLI.Execute(['--quiet', 'components', 'list'])
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 1008, in Execute
    self._HandleAllErrors(exc, command_path_string, specified_arg_names)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 1045, in _HandleAllErrors
    exceptions.HandleError(exc, command_path_string, self.__known_error_handler)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/calliope/exceptions.py", line 551, in HandleError
    core_exceptions.reraise(exc)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/exceptions.py", line 146, in reraise
    six.reraise(type(exc_value), exc_value, tb)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/six/__init__.py", line 693, in reraise
    raise value
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 982, in Execute
    resources = calliope_command.Run(cli=self, args=args)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 809, in Run
    resources = command_instance.Run(args)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/surface/components/list.py", line 102, in Run
    result = update_manager.List(show_hidden=args.show_hidden,
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/update_manager.py", line 714, in List
    to_print, current_version, latest_version = self._GetPrintListWithDiff()
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/update_manager.py", line 750, in _GetPrintListWithDiff
    _, diff = self._GetStateAndDiff(command_path='components.list')
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/update_manager.py", line 641, in _GetStateAndDiff
    latest_snapshot = self._GetLatestSnapshot(version=version,
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/update_manager.py", line 624, in _GetLatestSnapshot
    return snapshots.ComponentSnapshot.FromURLs(
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/snapshots.py", line 178, in FromURLs
    data = [
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/snapshots.py", line 179, in <listcomp>
    (ComponentSnapshot._DictFromURL(
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/snapshots.py", line 204, in _DictFromURL
    response = installers.MakeRequestViaRequests(url, command_path)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/installers.py", line 203, in MakeRequestViaRequests
    return _RawRequestViaRequests(url, headers=headers, timeout=timeout)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/installers.py", line 251, in _RawRequestViaRequests
    return retryer.RetryOnException(
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/util/retry.py", line 195, in RetryOnException
    exceptions.reraise(exc_info[1], tb=exc_info[2])
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/exceptions.py", line 146, in reraise
    six.reraise(type(exc_value), exc_value, tb)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/six/__init__.py", line 693, in reraise
    raise value
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/util/retry.py", line 176, in TryFunc
    return func(*args, **kwargs), None
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/updater/installers.py", line 281, in _ExecuteRequestAndRaiseExceptions
    response = requests_session.get(
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/transport.py", line 243, in WrappedRequest
    response = orig_request(*modified_args, **modified_kwargs)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/requests.py", line 198, in WrappedRequest
    return orig_request_method(*args, **kwargs)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/Users/joey/Downloads/google-cloud-sdk/lib/third_party/requests/adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='dl.google.com', port=443): Max retries exceeded with url: /dl/cloudsdk/channels/rapid/components-2.json (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1123)')))
7gyucuyw

7gyucuyw1#

运行以下命令以禁用ssl验证

gcloud config set auth/disable_ssl_validation  True
7kqas0il

7kqas0il2#

这对我很有效:

  1. Extract the google-cloud-sdk.zip that the installer downloads.
    1.打开谷歌云sdk\库\第三方\请求\会话. py
    1.将行"自我验证=真"更改为"自我验证=假"
    1.在根目录下运行install.bat(如果是解压缩到的目录)。
    1.利润
n1bvdmb6

n1bvdmb63#

此错误可能有许多可能的原因,代理配置可能是一个,但正如您提到的,您没有为您的网络配置代理,因此,原因可能是其他东西。为了验证此错误是否由于代理而发生,您可以尝试运行以下命令:

$ curl https://dl.google.com/

Output: <a href="https://www.google.com/chrome"> Found  </a>

如果你从上面提到的一个不同的输出,然后,你背后的代理或门户网站.
您可以参考此stackoverflow thread,其中云支持用户通过提供可能导致此SSL错误的各种可能原因给出了答案,他还提供了解决此错误的解决方案。如果安装了任何此类软件,请尝试禁用防病毒设置。

olhwl3o2

olhwl3o24#

添加导出CLOUDSDK_PYTHON="/usr/bin/python3”到我的.zshrc(zshell配置文件)为我解决了这个问题。
直到我添加到我的个人资料以上,这个问题并没有消失,但我也做了以下不确定是否所有这些步骤都需要解决这个问题:
1.从https://www.python.org/downloads/安装最新的python 3,我用的是python 3.10.4。
1.通过转到应用程序文件夹运行python 3.10安装证书命令,然后运行python 3.10并运行“安装证书命令”。
1.我在/Library/Frameworks/Python.framework/版本/3.10/lib/python3.10/站点包/证书/cacert.pem中添加了我的公司证书

相关问题