Ошибка проверки сертификата SSL3 при подключении к JIRA API с помощью Python
в настоящее время я сталкиваюсь с ошибкой при попытке подключиться к JIRA с помощью Python2.7 и JIRA REST API (http://jira-python.readthedocs.org/en/latest/).
когда я выполняю следующее:
from jira.client import JIRA
options = {
'server': 'https://jira.companyname.com'
}
jira = JIRA(options)
Я получаю следующее сообщение об ошибке в консоли:
requests.exceptions.SSLError: [Errno 1] _ssl.c:507: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
есть что-то, что я, возможно, пропустил или делаю неправильно?
спасибо!
2 ответов
Я знаю, что я опоздал на этот ответ, но, надеюсь, это поможет кому-то вниз по дороге.
почему вы не должны отключить проверку
пока поворачивать проверку сертификата самое легкое "решение", оно это неразумно. Это по существу говорит, - Мне все равно, доверяю я тебе или нет, я все равно вышлю тебе всю свою информацию." Это открывает вас для атаки "человек в середине".
если вы подключаетесь к серверу Jira вашей компании, и у него есть сертификат для TLS / SSL, вы должны проверить против этого. Я бы спросил ваш ИТ-отдел, где этот сертификат. Наверное в каком-то корневом сертификате для вашей компании.
если вы подключаетесь к серверу в браузере Chrome (например) он должен показывать блокировку в левом углу адресной строки, если она защищена через TLS / SSL.
вы можете Right-Click that lock -> Details -> View Certificate
в Chrome.
Итак, что я делать?
предоставьте необходимый сертификат напрямую.
jira-python
использует Requests
для HTTP stuff (см. документацию).
И согласно запрос на документацию
путь к файлу сертификата можно указать в verify
.
таким образом, вы можете предоставить корневой сертификат для вашей компании в verify
вот так:
jira_options = {
'server': jira_server_name,
'verify': 'path/to/company/root/certificate',
}
если вы используете машину Windows (безопасное предположение?), что корень
сертификат хранится в реестре и лучший способ сделать это
с помощью wincertstore
.
я столкнулся с аналогичной ошибкой проверки сертификата SSL и просматривая определения методов "JIRA", можно отключить проверку.
:param options: Specify the server and properties this client will use. Use a dict with any
of the following properties:
* server -- the server address and context path to use. Defaults to ``http://localhost:2990/jira``.
* rest_path -- the root REST path to use. Defaults to ``api``, where the JIRA REST resources live.
* rest_api_version -- the version of the REST resources under rest_path to use. Defaults to ``2``.
* verify -- Verify SSL certs. Defaults to ``True``.
* resilient -- If it should just retry recoverable errors. Defaults to `False`.
попробуйте это :
from jira.client import JIRA
options = {'server': 'https://jira.companyname.com','verify':False}
jira = JIRA(options)