UbuntuにSSL CA証明書を追加し、python requests で使う
Python
2018-06-21 02:34 (7 years ago)
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
評価をお願いします
まだ評価がありません
著者は、アプリケーション開発会社 Cyberneura を運営しています。
開発相談をお待ちしています。
開発相談をお待ちしています。