Apt с сертификатом клиента и HTTPS

У меня есть (приватная) установка репозитория apt на сервере. Я только разрешаю доступ к этому репозиторию через SSL и только с сертификатом клиента. Я проверил соединение с помощью curl:

$ curl --cacert /opt/CA.crt --cert /opt/user.crt --key /opt/user.key

https://example.com/dists/lucid/main/binary-amd64/Packages.gz. Содержимое загружается, как ожидалось.

Я создал файл в /etc/apt/apt.conf.d/45example-com с

Debug::Acquire::https "true"; Acquire::https::example.com { Verify-Peer "false"; Verify-Host "false"; CaInfo "/opt/CA.crt"; SslCert "/opt/user.crt"; SslKey "/opt/user.key"; };

Я добавил файл в /etc/apt/sources.list .d / example.com.list с:

deb https://example.com/ lucid main

Кажется, что проблема с сертификатом CA, когда я пытаюсь update Я получаю следующее:

> apt-get update > * Connected to example.com (8.0.0.8) port 443 (#0) > * found 1 certificates in /opt/CA.crt > * error reading X.509 key or certificate file > * Closing connection #0

Журналы сервера на example.com показывают, что никакого запроса не было, поэтому я думаю, что apt-get не работает, прежде чем пытаться отправить запрос (что соответствует тому, что log говорит).

Мне было трудно найти какую-либо документацию по apt-get с ssl на interwebs и даже не удалось найти исходный код.

У кого-нибудь есть идеи?

3
задан 26 May 2017 в 00:29

2 ответа

В основном это происходит с проблемой разрешений на каталоги, apt-get очень осознает, какое разрешение задано для ключей и файла cert, поэтому установка простого 777 или 644 никогда не будет работать.

в https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1668944 было очень полезно сузить эту проблему.

Я сделал следующие шаги, чтобы решить эту проблему,

Добавить _подключить пользователя к группе ssl-cert

~# usermod -G ssl-cert _apt

Добавить _подключить пользователя к группе ssl-cert

~# chgrp ssl-cert /opt/CA.crt /opt/user.crt /opt/user.key

Исправьте права доступа к файлам

~# chmod 655 /opt/CA.crt /opt/user.crt /opt/user.key

Также, если это не работает для вас, вы можете su как _apt и попробуйте прочитать ваши файлы сертификатов и ключей, если вы можете попробовать с сертификатом клиента работать как ожидалось.

Чтобы убедиться, что вы используете самоподписанный сертификат, убедитесь, что вы запустили

~# sudo update-ca-certificates

после переноса сертификата ca / ​​usr / local / share / ca-certificate /

1
ответ дан 18 July 2018 в 12:43

В основном это происходит с проблемой разрешений на каталоги, apt-get очень осознает, какое разрешение задано для ключей и файла cert, поэтому установка простого 777 или 644 никогда не будет работать.

в https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1668944 было очень полезно сузить эту проблему.

Я сделал следующие шаги, чтобы решить эту проблему,

Добавить _подключить пользователя к группе ssl-cert

~# usermod -G ssl-cert _apt

Добавить _подключить пользователя к группе ssl-cert

~# chgrp ssl-cert /opt/CA.crt /opt/user.crt /opt/user.key

Исправьте права доступа к файлам

~# chmod 655 /opt/CA.crt /opt/user.crt /opt/user.key

Также, если это не работает для вас, вы можете su как _apt и попробуйте прочитать ваши файлы сертификатов и ключей, если вы можете попробовать с сертификатом клиента работать как ожидалось.

Чтобы убедиться, что вы используете самоподписанный сертификат, убедитесь, что вы запустили

~# sudo update-ca-certificates

после переноса сертификата ca / ​​usr / local / share / ca-certificate /

1
ответ дан 24 July 2018 в 20:01

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

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