Я настроил репозиторий Debian (на самом деле Ubuntu) для внутреннего использования с некоторыми частными пакетами, и теперь хочу сделать его доступным через Интернет для некоторых конкретных серверов. Я хотел бы, чтобы apt-get / aptitude подключался к нему по протоколу HTTPS, а поскольку я не хочу тратить деньги, я использую самозаверяющий сертификат.
Я попытался на странице руководства apt.conf указать apt-get, чтобы использовать мой собственный сертификат корневого CA для проверки хоста, но, похоже, он не работает.
Мой файл apt.conf выглядит так:
#Acquire::https::repo.mydomain.com::Verify-Peer "false";
Acquire::https::repo.mydomain.com::CaInfo "/etc/apt/certs/my-cacert.pem";
Acquire::https::repo.mydomain.com::SslCert "/etc/apt/certs/my-cert.pem";
Acquire::https::repo.mydomain.com::SslKey "/etc/apt/certs/my-key.pem";
Я также использую сертификат клиента, но, похоже, это не проблема, потому что, когда я устанавливаю Verify-Peer в «false» (прокомментировано выше), все работает.
Используя тот же сертификат CA, клиентский сертификат и ключ хорошо работают с curl.
Я включил apt debugging (Debug :: Acquire :: https "true"), но он предлагает очень мало информации.
Любые предложения о том, как поступить?
источник
Недавно я столкнулся с подобной проблемой. Я решил это, добавив
SslForceVersion
опцию.Мой конфиг похож на:
источник
В askubuntu я обнаружил несколько более простую версию этого решения и ту, которая ограничивала выбор одним хостом.
Это сработало для меня.
Спрашивающий здесь, однако, хотел сохранить аутентификацию; Я попробовал несколько вещей в соответствии с вышеизложенным, но не смог заставить его работать. С другой стороны, поскольку мой репозиторий подписан, и я установил ключ подписи, аутентификация SSL не является критичной для безопасности.
источник
Я решил это по-другому, установив CA-сертификат.
*.crt
файл в `/ usr / local / share / ca-сертификаты /sudo update-ca-certificates
Это решение работает как минимум с Ubuntu 14.04.
источник
Надеюсь, это поможет другим - я не смог решить это напрямую.
В качестве обходного пути я теперь использую stunnel4 для создания туннеля к моему HTTPS-репозиторию. Самоподписанные сертификаты и сертификат клиента у меня очень хорошо работают с stunnel4.
Я настроил stunnel для прослушивания на локальном хосте: 8888 входящих соединений и перенаправления их в мое хранилище (repo.mydomain.com:443). Я настроил поискать свой репозиторий по адресу http: // localhost: 8888 / .
Пока это работает хорошо, хотя кажется, что это ненужный взлом.
источник
GnuTLS или apt, кажется, глючит. Если имя хоста из моего apt sources.list не соответствует Apache ServerName из моего веб-сервера репозитория, я получаю следующую ошибку при использовании TLSv1:
С использованием SSLv3 все работает нормально.
Примечание. Это не имеет ничего общего с сертификатом SSL. Недопустимый сертификат приведет к следующей ошибке:
источник