Linuxマシンをセットアップする際に欠かせない apt コマンド.
今まで何度かその設定ファイルである /etc/apt/apt.conf の罠にはめられた話です.
proxy 経由で apt コマンド実行した際のエラー
多くの会社がそうであるように, 社外への通信は proxy を経由することが多いかと.
わが社も外部に通信する際は proxy を経由して Internet を経由します.
proxy を経由して apt コマンドを利用するように以下の様に /etc/apt/apt.conf を書きます.
proxy.hogehoge.co.jp は社内の proxy の URL だと思ってください.
Acquire::ftp::proxy "ftp://proxy.hogehoge.co.jp:8080/"; Acquire::http::proxy "http://proxy.hogehoge.co.jp:8080/"; Acquire::https::proxy "https://proxy.hogehoge.co.jp:8080/";
これで apt コマンドでパッケージをインストールしてみると,
Could not handshake: An unexpected TLS packet was received. [IP: xxx.xxx.xxx.xxx 8080]
xx.xx.xxx.xxx は Proxy の IP アドレスだと思ってください.
おや?このエラーは…ううむ、かつてこんな現象を見たことあるなぁ…
…と古い記憶をたどります.
apt.conf の罠
もう一回 apt.conf を確認してみます.
Acquire::ftp::proxy "ftp://proxy.hogehoge.co.jp:8080/"; Acquire::http::proxy "http://proxy.hogehoge.co.jp:8080/"; Acquire::https::proxy "https://proxy.hogehoge.co.jp:8080/";
3行目の Acquire::https::proxy の行に注目, この記述に原因がありました.
正しくは以下の通り
Acquire::ftp::proxy "ftp://proxy.hogehoge.co.jp:8080/"; Acquire::http::proxy "http://proxy.hogehoge.co.jp:8080/"; Acquire::https::proxy "http://proxy.hogehoge.co.jp:8080/";
Acquire::https::proxy であっても proxy のURLは https:// ではなく, http:// が正しいんです.
今回も apt.conf の罠にひっかかりました…
良くやらかしそうな間違いではありますが、意外なほど書いてる人少なくて…
そんな意味でこの記事を書きました.
お役に立てれば幸いです
では