[ubuntu-jp:5807] opensslが参照するルート証明書の所在情報

Hiroshi Kubo hkubo @ ba2.so-net.ne.jp
2017年 5月 10日 (水) 02:13:31 UTC


opensslにルート証明書の所在を教えるにはどうすればいいか。このご
相談です。Ubuntu 14.04 LTSのユーザです。

具体例でご相談します。次のログをご覧ください。opensslコマンドに
よるssl接続テストの例です。

~$ openssl s_client -connect pop.so-net.ne.jp:995 -showcerts >/tmp/log
depth=1 C = US, O = Symantec Corporation, OU = Symantec Trust Network, CN = Symantec Class 3 EV SSL CA - G3
verify error:num=20:unable to get local issuer certificate
verify return:0
^C

ssl接続してくれません。理由は,ルート証明書がないことです。

証明書が存在しないのではありません。"-CAfile -CAfile
/etc/ssl/certs/ca-certificates.crt" をアーギュメントに加えると,
opensslはルート証明書を確認してSSL接続してくれます。下のログの通
りです。

~$ openssl s_client -CAfile /etc/ssl/certs/ca-certificates.crt -connect pop.so-net.ne.jp:995 -showcerts >/tmp/log
depth=2 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "(c) 2006 VeriSign, Inc. - For authorized use only", CN = VeriSign Class 3 Public Primary Certification Authority - G5
verify return:1
depth=1 C = US, O = Symantec Corporation, OU = Symantec Trust Network, CN = Symantec Class 3 EV SSL CA - G3
verify return:1
depth=0 1.3.6.1.4.1.311.60.2.1.3 = JP, businessCategory = Private Organization, serialNumber = 0107-01-005322, C = JP, postalCode = 141-6010, ST = Tokyo, L = Shinagawa-ku, street = 2-1-1 Ohsaki, O = So-net Corporation, OU = Systems Engineering Division 5, CN = pop.so-net.ne.jp
verify return:1
^C

update-ca-certificatesを実行するとルート証明書を更新できます。具
体的には/etc/ssl/certsとcertificates.crtが更新されます。しかし,
更新してもそのことはopensslに伝わらないようです。

私がご相談したいのは,ルート証明書の所在をopensslに教えるの
に-CAfileアーギュメントを使うしか手がないのか。この疑問です。ルー
ト証明書を保存する場所のデフォルトがあってよいし,その場所を伝え
るための設定ファイルがあってよいと思うのですが。

この問題に,opensslご利用のみなさんは,どう対処されているのでしょ
うか。助言,コメントをお願いします。

---久保



ubuntu-jp メーリングリストの案内