トップ 最新

かってきままな日々

2020-11-05 (Th) [長年日記]

_ squid をインストールしてみた

家庭内の3台の PC で、全部 archlinux が動いてる。 3台でそれぞれパッケージを更新すると、3台それぞれにダウンロードする。 ギガが無駄だよね、って思ってた。

そこで、squid で cache してみる。

ルート証明書、中間証明書を作って、中間証明書を squid に渡す。

ただ、http_port の引数がよくわからず、cert= と key= を使ってたんだけど、 古かったのかな、squid.conf.documented を見たら tls-cert= と tls-key= に 変わってたっぽい。

あと、 FATAL: No valid signing certificate configured for HTTP_port [::]:8081 とかいうエラーで起動しない問題もあって。 どうやら、証明書と秘密鍵が対応してなかったっぽいんだけど。

証明書を作る時に、いろいろやってて、最終的にしくじってるのに気づかず、 対応してないものを使っていた。 秘密鍵と証明書を作り直す時には、index.txt を削除しましょう、と。 でないと、秘密鍵は作ったけど証明書は「既にあるぜ!」ってエラーで 作られず、それに気づかず、作った秘密鍵と古い証明書を使ってしまった。 ようである。

証明書はこんな感じで。

FATAL: The /usr/lib64/squid/security_file_certgen -s /var/local/squid/ssl_db -M 4MB helpers are crashing too rapidly, need help! かな。

help! っていうなら、もっと親切なメッセージ出せよ。 squid は help って言ってるだけだし、肝心の security_file_certgen は 何も残してない。

手動で同じコマンドを実行してみたところ、一旦 -c で ssl_db を初期化してやる 必要があるんだそうで。

参考にしてたサイトにもちゃんと -c は説明してあって、 もちろんよく見なかった私のミスなんけど、 診断メッセージが不親切すぎるやろ。

あとは、とりあえずブラウザに設定して試して、 また証明書と証明書キャッシュを削除して squid を再起動して、 firefox を reload したら、google につながった!!!

これを pacman に設定する。 root ca を /etc/pacman.d/ にでも置いておいて、 pacman.conf の XferCommand を

XferCommand = /usr/bin/env https_proxy=mike.local:8443 /usr/bin/wget --ca-certificate=/etc/pacman.d/RootCA_crt.pem -c -O %o %u

と設定する。

一応、プロキシとしては機能してる。

ただ、pacman -Syu で 700MB 以上ダウンロードしたはずなのに、 /var/cache/squid/ には 200MB 弱くらいしかなくて、全然意味不明。 ちゃんと cache できてないのか…? cache の timestamp は新しいんだけどな。

とりあえず今日は時間切れなので、また明日かな。