Ошибка сертификации SSL в python при выполнении запросов - PullRequest
0 голосов
/ 22 марта 2019

Я использую gspread для доступа к электронной таблице Google, но она показывает SSLError.

Подобное происходит, когда я использую библиотеку запросов.

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds',
         'https://www.googleapis.com/auth/drive']

credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)

gc = gspread.authorize(credentials)`

Ошибка:

SSLCertVerificationError                  Traceback (most recent call last)
<ipython-input-1-87ec55398e31> in <module>
      7 credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
      8 
----> 9 gc = gspread.authorize(credentials)


SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1051)

1 Ответ

0 голосов
/ 23 марта 2019

Это работает для меня с requests == 2.21.0 и certifi == 2018.11.29, поэтому первым делом я проверю, есть ли у вас более старые версии (особенно certifi).

Кроме того, если это вызвано certifi , вы можете обойтись путем сброса хранилища доверия, используемого запросами , в общее хранилище доверия системы, вы можете найти путь запустив:

python3 -c 'import ssl; print(ssl.get_default_verify_paths())'

ищите значение cafile или openssl_cafile, а затем (замените $cafile полученным значением):

export REQUESTS_CA_BUNDLE=$cafile

См. Также эту ошибку .

...