Как заставить apt-cacher-ng загружать И кэшировать пакеты из репозиториев Apt HTTPS?

Обычно пакеты Apt обслуживаются по "голому" HTTP, а загруженное содержимое проверяется подписями GPG. Это упрощает для apt-cacher-ng проксирование HTTP-соединений и добавление загруженных пакетов в свой кэш.

apt-cacher-ng не может напрямую MITM HTTPS соединения, созданного Apt. Возможно настроить HTTPS соединения на прохождение через apt-cacher-ng, но тогда содержимое не будет кэшироваться - оно будет каждый раз перезагружаться с удаленного сервера. Это быстро раздражает при перестройке контейнеров Docker, которые устанавливают множество пакетов из Apt-репозиториев, обслуживаемых по HTTPS.

Есть ли способ заставить apt-cacher-ng кэшировать пакеты, загруженные из репозиториев HTTPS?

0
задан 12 January 2021 в 02:50

1 ответ

Допустим, URL-адрес вашей службы APT-CACHER-NG http: // localhost: 3000 , и вы храните его в переменной Bash $ {Local_apt_cache_url} .

Затем вы должны переписать файл Sources.list и файл файлов каталога . List.d файлы каталога со следующими двумя преобразованиями:

http

Эта команда переписывает URL-адрес репозитория APT на http://example.com - http: http: // localhost: 3000 / example.com :

find /etc/apt/sources.list /etc/apt/sources.list.d/ \
-type f -exec sed -Ei 's!http://!'${LOCAL_APT_CACHE_URL}'/!g' {} \;

HTTPS

Эта команда переписывает репозиторий APT В HTTPS://example.com - http: // localhost: 3000 / https /// example.com . APT-CACHER-NG получает HTTP-запрос, а затем инициирует свой собственный запрос HTTPS - удаление потребности в любой MITM или Passthrough. Пакеты HTTPS правильно кэшируются.

find /etc/apt/sources.list /etc/apt/sources.list.d/ \
-type f -exec sed -Ei 's!https://!'${LOCAL_APT_CACHE_URL}'/HTTPS///!g' {} \;

Это преобразование должно быть сделано для любых новых репозиториев, которые добавляются позже - будь то непосредственно изменение источников .List или через утилиту Add-APT-Repository Отказ

0
ответ дан 18 March 2021 в 23:44

Другие вопросы по тегам:

Похожие вопросы: