2021-10-01 に Let's Encrypt の SSLでエラーが出る模様
systemd-nspawn ゲストの一般ユーザーでネットが繋がらない。
何もしてないのに壊れた。
$ git remote show origin fatal: unable to access 'https://example.com/app/app.git/': server certificate verification failed. CAfile: none CRLfile: none
$ ping localhost ping: socket: 許可されていない操作です $ LANG=C ping localhost ping: socket: Operation not permitted
検索するとSSL系の設定やsuidの記事が出てくるが、違う感じがする。pingは元々 /usr/ping は u+s ではない。
libcap2-bin 系も違う。別の環境ではgetcapの結果は同じなのに使えたりするので。
ログにも異常は見つけられず。
pingはrootだと問題なさそうなので、権限系っぽいが…。
ホストごと再起動してみるも直らず。
opensslは自動アップグレードがかかっているけど、それだとpingは関係ないよねえ…。
systemdのセキュリティ更新は二ヶ月以上前で、その後は問題なかった。
pingが問題ないマシンもあるので、違いを見てみる。
grep Cap /proc/$$/status の結果や getcap /bin/ping の結果は同じ。
$ grep Cap /proc/$$/status CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: 00000000fdecbfff CapAmb: 0000000000000000 # getcap /bin/ping /bin/ping = cap_net_raw+ep
他にも試す。
export GIT_SSL_NO_VERIFY=1
あれ?これでいけた。
もしかして最初からpingは使えなかった?
うーん…。でもopensslの更新も二ヶ月前だった。なんで?
9/27は問題なし、今月になってから問題になったということは…
もしかしてこれ?
wgetはダメだった。curlはいける。
git は rootでもダメだった。
openssl が 1.1 なので完全にスルーしてた。ホストもゲストも同じバージョンなのにゲストだけエラーが出る。何かパッケージが足りないのだろうか?
/usr/share/ca-certificates/ にも違いが無い。
update-ca-certificates をやっても変わらない。
/etc/ssl/certs/ca-certificates.crt もエラーが無いゲストとエラーがあるゲストで同じだった。…うーん。
www.mail-archive.com
stackoverflow.com
最悪ローカルのcrtを何とかすればいいっぽいけど…。普通にパッケージ更新していれば大丈夫だとか、update-ca-certificatesでうまくいくって書いてあるよね。
openssl s_client -CApath /etc/ssl/certs -showcerts -connect lists.debian.org:443 < /dev/null
openssl のコマンドでは成功するけど、wgetが成功しない。分からん…。
新しい環境でダメな人も居るみたい。
マジで困った。
/etc/ca-certificates.conf の
mozilla/DST_Root_CA_X3.crt
この行の先頭に ! を入れて、update-ca-certificates をすれば取りあえずはしのげる。
でも、この手作業の対応をそれぞれのサーバーでやる…?まったく同じバージョンで問題ないサーバーもあるのに…?
うーん…すっきりしない。
update-ca-certificates --fresh --verbose
でも変わらず、wgetでエラーが出るサーバーとエラーが出ないサーバーがある。