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

    俺もスタバアプリにログインできないよ
    2 週間 前

  • 安藤拓郎 Takuro Ando

    安藤拓郎 Takuro Ando @takuroando

    ytyng

    これまでいろんなグッズを作ってきたけど、今回は「お米」と聞いて買うしかないなと。今夜の夕食はコシヒカリ!箸もセットだし^^ https://t.co/01ucQx9qtw #腰乃展 #マンガ展 https://t.co/4VL2vOe0Og
    4 週間 前

  • ytyng

    ytyng @ytyng

    講談社さんとやった全部入り電子書籍セットがギネスブックに登録されたよー https://t.co/rbkd3IYub0
    4 週間 前