Skip to content

Python2.7 TransportError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581) #3498

Closed

Description

@j2p0

yesterday, i run python quickstart.py in python-docs-samples/vision/cloud-client/quickstart and got this error, but in version Python 3.6.1 it run fine.

  1. Centos 7
  2. Python 2.7.9

(env_2.7.9) [quickstart]$ python quickstart.py
E0613 10:16:38.646972552 9939 plugin_credentials.c:74] Getting metadata from plugin failed with error: Traceback (most recent call last):
File "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi", line 154, in grpc._cython.cygrpc.plugin_get_metadata (src/python/grpcio/grpc/_cython/cygrpc.c:6996)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/grpc/_plugin_wrapping.py", line 106, in call
AuthMetadataPluginCallback(wrapped_cygrpc_callback))
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 73, in call
callback(self._get_authorization_headers(context), None)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 61, in _get_authorization_headers
headers)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/auth/credentials.py", line 121, in before_request
self.refresh(request)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/oauth2/credentials.py", line 126, in refresh
self._client_secret))
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/oauth2/_client.py", line 189, in refresh_grant
response_data = _token_endpoint_request(request, token_uri, body)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/oauth2/_client.py", line 104, in _token_endpoint_request
method='POST', url=token_uri, headers=headers, body=body)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/auth/transport/requests.py", line 115, in call
raise exceptions.TransportError(exc)
TransportError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

Traceback (most recent call last):
File "quickstart.py", line 50, in
run_quickstart()
File "quickstart.py", line 41, in run_quickstart
labels = image.detect_labels()
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/cloud/vision/image.py", line 219, in detect_labels
annotations = self.detect(features)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/cloud/vision/image.py", line 143, in detect
return self._detect_annotation(images)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/cloud/vision/image.py", line 117, in _detect_annotation
return self.client._vision_api.annotate(images)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/cloud/vision/_gax.py", line 69, in annotate
responses = annotator_client.batch_annotate_images(requests).responses
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/cloud/gapic/vision/v1/image_annotator_client.py", line 181, in batch_annotate_images
return self._batch_annotate_images(request, options)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/gax/api_callable.py", line 428, in inner
return api_caller(api_call, this_settings, request)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/gax/api_callable.py", line 416, in base_caller
return api_call(*args)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/gax/api_callable.py", line 376, in inner
return a_func(*args, **kwargs)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/gax/retry.py", line 127, in inner
' classified as transient', exception)
google.gax.errors.RetryError: GaxError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.UNAUTHENTICATED, Traceback (most recent call last):
File "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi", line 154, in grpc._cython.cygrpc.plugin_get_metadata (src/python/grpcio/grpc/_cython/cygrpc.c:6996)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/grpc/_plugin_wrapping.py", line 106, in call
AuthMetadataPluginCallback(wrapped_cygrpc_callback))
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 73, in call
callback(self._get_authorization_headers(context), None)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 61, in _get_authorization_headers
headers)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/auth/credentials.py", line 121, in before_request
self.refresh(request)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/oauth2/credentials.py", line 126, in refresh
self._client_secret))
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/oauth2/_client.py", line 189, in refresh_grant
response_data = _token_endpoint_request(request, token_uri, body)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/oauth2/_client.py", line 104, in _token_endpoint_request
method='POST', url=token_uri, headers=headers, body=body)
File "/home/leth/Workspace/Python/python2/python-docs-samples/vision/cloud-client/quickstart/env_2.7.9/lib/python2.7/site-packages/google/auth/transport/requests.py", line 115, in call
raise exceptions.TransportError(exc)
TransportError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
)>)

Activity

  1. dhermes commented on Jun 13, 2017

    @dhermes
    Contributor

    @japonikaa Thanks for filing. This is something we've seen with shared state across threads in httplib2, but it appears the underlying code is using requests, so it seems to be different.

  2. theacodes commented on Jun 13, 2017

    @theacodes
    Contributor

    @japonikaa try installing request's security extra pip install requests[security]. On older Python versions, the ssl module can't verify SNI certificates. Did you get an InsecurePlatformWarning at all?

  3. j2p0 commented on Jun 14, 2017

    @j2p0
    Author

    @dhermes ,@jonparrott thanks for your advise .
    but after install requests[security], i got others error below

    i have confused because python2 run fine before Error: [SSL: CERTIFICATE_VERIFY_FAILED],but now i decided to using python3 and solved my problem.

    just wonder what wrong with python2.

    thanks all.


    E0614 14:54:59.432905077    5196 plugin_credentials.c:74]    Getting metadata from plugin failed with error: Traceback (most recent call last):
      File "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi", line 154, in grpc._cython.cygrpc.plugin_get_metadata (src/python/grpcio/grpc/_cython/cygrpc.c:6996)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/grpc/_plugin_wrapping.py", line 106, in __call__
        AuthMetadataPluginCallback(wrapped_cygrpc_callback))
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 73, in __call__
        callback(self._get_authorization_headers(context), None)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 61, in _get_authorization_headers
        headers)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/auth/credentials.py", line 121, in before_request
        self.refresh(request)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/oauth2/credentials.py", line 126, in refresh
        self._client_secret))
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/oauth2/_client.py", line 189, in refresh_grant
        response_data = _token_endpoint_request(request, token_uri, body)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/oauth2/_client.py", line 104, in _token_endpoint_request
        method='POST', url=token_uri, headers=headers, body=body)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/auth/transport/requests.py", line 115, in __call__
        raise exceptions.TransportError(exc)
    TransportError: ("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",)
    
    Traceback (most recent call last):
      File "quickstart.py", line 50, in <module>
        run_quickstart()
      File "quickstart.py", line 41, in run_quickstart
        labels = image.detect_labels()
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/cloud/vision/image.py", line 219, in detect_labels
        annotations = self.detect(features)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/cloud/vision/image.py", line 143, in detect
        return self._detect_annotation(images)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/cloud/vision/image.py", line 117, in _detect_annotation
        return self.client._vision_api.annotate(images)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/cloud/vision/_gax.py", line 69, in annotate
        responses = annotator_client.batch_annotate_images(requests).responses
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/cloud/gapic/vision/v1/image_annotator_client.py", line 181, in batch_annotate_images
        return self._batch_annotate_images(request, options)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/gax/api_callable.py", line 428, in inner
        return api_caller(api_call, this_settings, request)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/gax/api_callable.py", line 416, in base_caller
        return api_call(*args)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/gax/api_callable.py", line 376, in inner
        return a_func(*args, **kwargs)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/gax/retry.py", line 127, in inner
        ' classified as transient', exception)
    google.gax.errors.RetryError: GaxError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.UNAUTHENTICATED, Traceback (most recent call last):
      File "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi", line 154, in grpc._cython.cygrpc.plugin_get_metadata (src/python/grpcio/grpc/_cython/cygrpc.c:6996)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/grpc/_plugin_wrapping.py", line 106, in __call__
        AuthMetadataPluginCallback(wrapped_cygrpc_callback))
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 73, in __call__
        callback(self._get_authorization_headers(context), None)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 61, in _get_authorization_headers
        headers)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/auth/credentials.py", line 121, in before_request
        self.refresh(request)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/oauth2/credentials.py", line 126, in refresh
        self._client_secret))
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/oauth2/_client.py", line 189, in refresh_grant
        response_data = _token_endpoint_request(request, token_uri, body)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/oauth2/_client.py", line 104, in _token_endpoint_request
        method='POST', url=token_uri, headers=headers, body=body)
      File "/home/leth/Workspace/Python/python2/google-cloud-vision/lib/python2.7/site-packages/google/auth/transport/requests.py", line 115, in __call__
        raise exceptions.TransportError(exc)
    TransportError: ("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",)
    )>)
    
  4. lukesneeringer commented on Aug 8, 2017

    @lukesneeringer
    Contributor

    This issue was moved to grpc/grpc#12113

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions