12

Python2.7 と JIRA REST API ( http://jira-python.readthedocs.org/en/latest/ )を使用して JIRA に接続しようとすると、現在エラーが発生しています。

以下を実行すると:

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

見逃した、または間違っている可能性があるものはありますか?

ありがとう!

4

4 に答える 4

14

同様の 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)
于 2014-06-17T17:37:42.160 に答える
12

私はこの答えに遅れていることを知っていますが、うまくいけば、これが誰かの助けになることを願っています.


検証をオフにしてはいけない理由

証明書の検証をオフにするのが最も簡単な「解決策」ですが、これはお勧めできません。本質的には、「あなたを信頼するかどうかはどうでもいい、とにかく私の情報をすべてあなたに送るつもりだ」と言っています。これにより、中間者攻撃が可能になります。

会社の Jira サーバーに接続していて、TLS/SSL の証明書がある場合は、それに対して検証する必要があります。その証明書がどこにあるのか、IT 部門に尋ねたいと思います。おそらく、あなたの会社のルート証明書にあるでしょう。

たとえば、Chrome でサーバーに接続している場合、TLS/SSL で保護されていれば、アドレス バーの左隅にロックが表示されます。

Right-Click that lock -> Details -> View CertificateChrome でできます。

さて、私は何をしますか?

必要な証明書をverifyオプションに直接提供します。

jira-pythonRequestsHTTPのものに使用します(ドキュメントを参照)Requests のドキュメントによると 、証明書ファイルへのパスを で指定できますverify

verifyしたがって、次のように会社のルート証明書を提供できます。

jira_options = {
    'server': jira_server_name,
    'verify': 'path/to/company/root/certificate',
}

Windows マシンを使用している場合 (安全な想定でしょうか?)、そのルート証明書はレジストリに格納されており、それを取得する最善の方法は を使用することですwincertstore

于 2016-10-12T20:16:39.523 に答える
2

python-certifi-win32 モジュールをインストールするだけで、問題なくこれらのエラーを回避できます。

于 2021-06-03T06:10:24.160 に答える