5

Tại sao google api adwords dừng theo yêu cầu liên kết này:Tại sao tôi nhận được CERTIFICATE_VERIFY_FAILED từ google adwords api?

https://adwords.google.com/api/adwords/mcm/v201502/CustomerService?wsdl 

Với lỗi này - Tôi nên tải một số giấy chứng nhận trước và như thế nào?

urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)> 

Sử dụng Python 2.7.10.

mã nguồn đầy đủ: create_adwords_client_without_yaml.py

Full mã lỗi:

Traceback (most recent call last): 
    File "C:/Users/Crezary Wagner/PycharmProjects/learn-adwords/src/examples/create_adwords_client_without_yaml.py", line 56, in <module> 
    CLIENT_CUSTOMER_ID) 
    File "C:/Users/Crezary Wagner/PycharmProjects/learn-adwords/src/examples/create_adwords_client_without_yaml.py", line 50, in main 
    customer = adwords_client.GetService('CustomerService').get() 
    File "C:\root\Python27\lib\site-packages\googleads\adwords.py", line 256, in GetService 
    proxy=proxy_option, cache=self.cache, timeout=3600) 
    File "C:\root\Python27\lib\site-packages\suds\client.py", line 115, in __init__ 
    self.wsdl = reader.open(url) 
    File "C:\root\Python27\lib\site-packages\suds\reader.py", line 150, in open 
    d = self.fn(url, self.options) 
    File "C:\root\Python27\lib\site-packages\suds\wsdl.py", line 136, in __init__ 
    d = reader.open(url) 
    File "C:\root\Python27\lib\site-packages\suds\reader.py", line 74, in open 
    d = self.download(url) 
    File "C:\root\Python27\lib\site-packages\suds\reader.py", line 92, in download 
    fp = self.options.transport.open(Request(url)) 
    File "C:\root\Python27\lib\site-packages\suds\transport\https.py", line 62, in open 
    return HttpTransport.open(self, request) 
    File "C:\root\Python27\lib\site-packages\suds\transport\http.py", line 67, in open 
    return self.u2open(u2request) 
    File "C:\root\Python27\lib\site-packages\suds\transport\http.py", line 132, in u2open 
    return url.open(u2request, timeout=tm) 
    File "C:\root\Python27\lib\urllib2.py", line 431, in open 
    response = self._open(req, data) 
    File "C:\root\Python27\lib\urllib2.py", line 449, in _open 
    '_open', req) 
    File "C:\root\Python27\lib\urllib2.py", line 409, in _call_chain 
    result = func(*args) 
    File "C:\root\Python27\lib\urllib2.py", line 1240, in https_open 
    context=self._context) 
    File "C:\root\Python27\lib\urllib2.py", line 1197, in do_open 
    raise URLError(err) 
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)> 
+0

Đảm bảo hệ điều hành được cập nhật đầy đủ. Có thể thiếu các chứng chỉ công cộng mà bạn cần. – abraham

Trả lời

2

Không chắc nếu đó là vấn đề ở đây, nhưng giá trị kiểm tra nó.

Python 2.7.9 xác thực chứng chỉ được bật theo mặc định cho HTTP kết nối.

Máy chủ bạn đang kết nối không có chứng chỉ được khách hàng tin cậy. pysphere nên cấu hình SSL một cách thích hợp cho trường hợp sử dụng này.

Hãy thử làm theo yêu cầu của bạn như:

requests.get('https://adwords.google.com/api/adwords/mcm/v201502/CustomerService?wsdl', verify=False) 
+0

Tôi có thể ngừng xác minh để không thể sử dụng giải pháp của bạn. Tôi biết rằng nó sẽ hoạt động nhưng phải cài đặt chứng chỉ tin cậy. – Chameleon

+0

Kiểm tra [link] này (https://developers.google.com/adwords/api/docs/guides/authentication) sau đó cho phép ứng dụng của bạn sử dụng OAUTH 2.0. –

+1

Liên kết này không giúp giải quyết vấn đề về chứng chỉ. Đây là nguồn thông tin tốt nhưng không có gì về vấn đề với chứng chỉ. Ví dụ chính thức của Google không hoạt động. – Chameleon

3

Python sử dụng chứng từ 'hệ thống lưu trữ chứng chỉ ssl' để xác nhận https kết nối, nếu không có bất kỳ cert ssl thích hợp trong các lỗi cửa hàng xảy ra như thế này. giấy chứng nhận Tải ssl (Mở liên kết https trong trình duyệt và bấm vào biểu tượng khóa trong thanh địa chỉ> Thông tin khác> View Certificate> Chi tiết> Export) và cài đặt nó trên hệ thống của bạn như đã nêu liên kết này http://windows.microsoft.com/en-us/windows/import-export-certificates-private-keys#1TC=windows-7

0

Hãy thử điều này, nó giúp tôi :

import ssl 

ssl._create_default_https_context = ssl._create_unverified_context 
Các vấn đề liên quan