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

Python
2018-06-21 11:34 (6年前) ytyng
View in English

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

現在未評価
タイトルとURLをコピー

コメント

アーカイブ

2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011