UbuntuにSSL CA証明書を追加し、python requests で使う

(コメント)

1. もし、証明書が der 形式なら pem にしておく

openssl x509 -in torico.der -inform DER -out torico-ca.crt -outform PEM

2. 証明書を /usr/local/share/ca-certificates/ にコピー

3. sudo update-ca-certificates を実行

この時点で、curl を使うときなど証明書が使われるようになり、証明書エラーが出なくなる。

ただし、Python Requests では証明書エラーとなる。

4. Python Requests で使う場合は、環境変数が必要

REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt

環境変数は /etc/environment に追加しておくといい

ちなみに、request の引数 verify= にCA のパスを指定しても参照することができる

import requests
requests.get('https://xxx', verify='/usr/local/share/ca-certificates/torico-ca.crt')

Ansible

Ansible で書くとこんな感じ

- hosts: servers
gather_facts: no
become: yes
tasks:
- copy:
src: torico-ca.crt
dest: "/usr/local/share/ca-certificates/torico-ca.crt"
mode: 0664

- shell: update-ca-certificates

- lineinfile:
dest: "/etc/environment"
insertafter: EOF
line: "REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt"

参考
ssl - Python Requests - How to use system ca-certificates (debian/ubuntu)? - Stack Overflow

現在未評価

コメント

最近のツイート

  • ytyng

    ytyng @ytyng

    bootstrap cdn が少しダウンしてた。https://t.co/olTmNrJy33 / https://t.co/M4IqniWeWj どちらも。
    1 週間, 4 日 前

  • ytyng

    ytyng @ytyng

    @threadsleep 同様の現象でした。
    1 週間, 4 日 前

  • ytyng

    ytyng @ytyng

    Github!
    1 週間, 5 日 前