ログ日記

作業ログと日記とメモ

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は問題なし、今月になってから問題になったということは…

www.walbrix.co.jp

もしかしてこれ?
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が成功しない。分からん…。


community.letsencrypt.org

新しい環境でダメな人も居るみたい。


マジで困った。



/etc/ca-certificates.conf の

mozilla/DST_Root_CA_X3.crt

この行の先頭に ! を入れて、update-ca-certificates をすれば取りあえずはしのげる。
でも、この手作業の対応をそれぞれのサーバーでやる…?まったく同じバージョンで問題ないサーバーもあるのに…?
うーん…すっきりしない。

update-ca-certificates --fresh --verbose

でも変わらず、wgetでエラーが出るサーバーとエラーが出ないサーバーがある。