Python: requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

Автор: | 09/03/2015
 

PythonВо время выполнения API запроса с помощью модуля requests — возникает ошибка:

RDS Cloudlibrary module started at 31, Aug 2015 at 16:08:37
Task have Done status: NG-5859
URL variable not found, will default — https://www.dev.domain.com/cloudlibrary/
Removing MATH_DLL via https://www.dev.domain.com/cloudlibrary/data/488fe16f-bb89-4cc0-b972-c8b9044dc7ed
Traceback (most recent call last):

File «C:RDSmanagerlibexternalrds_clc.py», line 92, in cloud_delete
data_delete = self.session.delete(url)

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)

Метод выглядит так:

    def cloud_delete(self, url):

        """Delete object from Cloudlibrary"""

        try:
            data_delete = self.session.delete(url)
            data_delete.raise_for_status()
            self.logger.logger.info('Result code: {}'.format(data_delete.status_code))
        except requests.exceptions.HTTPError as error:
            raise CLCException(self.logger, 'Cloudlibrary request error: {}'.format(error))
        except requests.exceptions.TooManyRedirects:
            self.logger.logger.info('Authentication failed!')
            sys.exit(6)

Ошибка вызвана самодписанным сертификатом на стороне сервера, через который выполняется API-запрос.

Для решения — можно использовать параметр verify=False, например:

...
data_put = self.session.put(url, data=infile, verify=False)
...