hack のためのネタ帳, etc,,,

以下の環境で ca-certificates が腐って難儀した。
$ uname -a;lsb_release -a
Linux www4 3.16.0-4-686-pae #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03) i686 GNU/Linux
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 8.6 (jessie)
Release:	8.6
Codename:	jessie
まず、問題が発覚したのは、昨年末に SSL 証明書が更新されたサーバーへの SSL 通信で検証が尽く失敗する状態に陥っていた。
中間証明書は正しい物がちゃんと落ちて来ており、Windows や、他にもある Debian の同等環境ではこの現象は観察出来なかった。
この時点で、当該サーバー内のルート証明書の問題なのは分かったのだが、/usr/share/ca-certificates/mozilla/ 以下には目的のルート証明書は存在しているのに、なぜか /etc/ssl/certs/ 以下にシンボリックリンクが張られていないという謎な状況。update-ca-certificates もためしてみたが効果がなかった。

で、update-ca-certificate の中を除いて見たところ、どうやら /etc/ca-certificates.conf に先頭が ! になったエントリーが多数生じているせいで、update-ca-certificates してもこいつらが /etc/ssl/certs/ca-certificates.crt に取り込まれない状態になっていることが分かった。
仕方ないので、とりあえず
apt-get install --reinstall ca-certificates
とか
dpkg-reconfigure ca-certificates
とかもやってみたが効果なし。
/etc/ca-certificates.conf をリネームしてから試してもやっても同様と言うか、なぜか行頭に ! が入った大量のエントリーが新たに /etc/ca-certificates.conf へ生成されてしまう。
一旦 purge する事も試みたのだが、道連れに remove されるパッケージが多過ぎるため断念。

で、結局
dpkg download ca-certificates
して拾ってきた .dev を dpkg -e して control ファイルを展開し、config と postinst を眺めて見たところ、/usr/share/ca-certificates がなければ初回インストール扱いするロジックが組んであるのを発見。
mv /etc/ca-certificates.conf{,\,bak}
mv /etc/ssl/certs{,\,bak}
mv /usr/share/ca-certificates{,\,bak}
した後、
apt-get install --reinstall ca-certificates
することで、/etc/ca-certificates.conf から行頭に ! のあるエントリーが綺麗さっぱり消え去った。

何だったんだよ、これは?

コメントをかく


画像に記載されている文字を下のフォームに入力してください。

「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です