2015-09-21 5 views
0

Я ищу, чтобы использовать библиотеку api python mcafee-epo для автоматизации некоторых из моих более повторяющихся задач обслуживания.Python - Игнорирование самоподписанных предупреждений о сертификатах при использовании McAfee Web API

При попытке подключиться к нашему серверу epolicy появляется сообщение о том, что сертификат недействителен и сбой сценария.

Ошибка возникает из-за того, что наш сервер ePO использует самозаверяющие сертификаты и, следовательно, создает обычные предупреждения о безопасности при подключении.

Есть ли встроенная функция для пакета/модуля mcafee-epo, который может использоваться для игнорирования этого предупреждения о безопасности или, возможно, метода обработки exeception, который позволит мне обойти созданные SSL-ошибки?

Спасибо! Смущенный младший. админ

ответ

1

Глядя на исходный код здесь https://bitbucket.org/davidism/mcafee-epo/src/ecc8836ea933f188dd9836e056cbaaabf768085d/mcafee_epo.py?at=default&fileviewer=file-view-default, если вы просто сделать звонок, как, например:

client = Client() 
client('endpoint', verify=False) 

Я не могу проверить это, но библиотека Макафи использует модуль запросов. То, как вы игнорируете SSL в запросах, должно включать verify=False в ваши вызовы get/post. Квадраты в client передаются в оболочку вокруг этого запроса.

http://docs.python-requests.org/en/latest/user/advanced/#ssl-cert-verification

+0

Нет, если приглядеться только 'files' и' params' аргументы 'kwargs' переданного' __call__' используются. И рекомендация отключить аутентификацию никогда не является хорошим предложением. – mata

+0

Я ничего не рекомендовал, он спросил, как отключить предупреждения ... и если вы посмотрите внимательно, 'params' обновляется с помощью' kwargs', хотя я не думаю, что он будет использовать их в '_request'. Вероятно, придется модифицировать этот модуль, чтобы использовать kwargs. – postelrich

0

Вы должны попытаться сделать requests принять ваш самоподписанный сертификат.

Одним из способов было бы установить переменную окружения REQUESTS_CA_BUNDLE, чтобы указать на сертификат (Bundle) запросы должны использовать:

os.environ['REQUESTS_CA_BUNDLE'] = "/path/to/cert.pem" 

Альтернативой было бы изменить источник библиотеки передать пакет сертификатов, как verify параметр session.get()/session.post().

Вы должны проверить документацию запросов о ssl cert verification