Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

Debian で net/https を使ってはてなにアクセス

(2/26 追記: 解決! id:satob:20060226:p2)
上のトピックの続き。
Debian の場合、そもそもシステムで共用の認証局証明書リストというものがないらしい。見つかったものとしては……

$ locate ca-bundle | xargs dpkg -S
acroread: /usr/lib/Adobe/Acrobat7.0/Reader/Cert/curl-ca-bundle.crt
kdelibs-data: /usr/share/apps/kssl/ca-bundle.crt
libcurl3: /usr/share/curl/curl-ca-bundle.crt

で、 Equifax Secure eBusiness CA-1 が載ってるものは kdelibs-data パッケージに入っているものだけ。このパッケージも必ず入っている訳ではないし……

解決法として、システム共用の認証局証明書リストをどこかから持ってくる、という方法がある。今回は mod_ssl に添付されているものを利用する。
mod_ssl のページ から tarball をダウンロードし展開、その中の pkg.sslcfg/ca-bundle.crt を /etc/ssl/ あたりに置く *1 *2Ruby スクリプトでこれを使うように指定すればよい。

もう一つの解決法として、 id:satob:20060222:p2 で作った w3m 用のファイルを利用する方法がある。この場合、 https.ca_file にファイルを指定する代わりに、 https.ca_path に /usr/ssl/certs を指定すればよい。 Debian としてはこちらが理想だろう。

*1:Vine なら /usr/share/ssl/certs/ca-bundle.crt をこのファイルで置き換える

*2:FHS から見てこれが OK なのかどうかは知りません