Я использую Windows с Docker для настольного компьютера, пытаясь отправить / извлечь в / из частного корпоративного реестра Docker, который требует аутентификации сертификата клиента. К сожалению, из-за этой прекрасной ошибки (https://github.com/docker/for-win/issues/2231) я не могу загрузить необходимые сертификаты.
Итак, у меня есть три файла:
- ca.crt
- client.key
- client.cert
На других платформах (Ma c, Linux) я просто поставил эти три файлы в папке ~/.docker/certs.d/example.registry
, и он работает, поэтому я знаю, что с сертификатами все в порядке.
В любом случае из-за вышеупомянутой ошибки я не могу загрузить их должным образом. Я знаю, что в проблеме с Github есть обходной путь, но я не хочу выполнять действия вручную каждый раз, когда обновляется мой Docker. Кроме того, мне нравится эта возможность узнать кое-что о другом подходе.
Моя идея:
- Прокси-сервер всех docker запросов к моей локальной машине.
- Выполнить прокси, который пересылает запрос в реестр и помещает сертификаты в запрос.
Идея состоит в том, что всякий раз, когда программное обеспечение Docker обновляется, мне не нужно ничего менять. И когда ошибка будет исправлена в Docker для рабочего стола для Windows, я могу просто удалить прокси, и мне будет хорошо go.
Шаг 1 уже работает, настроив Docker вот так:
Я попытался запустить прокси на своей машине, но немного запутался в терминологии. Я пробовал запускать такие инструменты, как Squid
, Stunnel
и mitmproxy
, но безуспешно. На данный момент я даже не знаю, возможно ли то, что я пытаюсь сделать. Дальше я зашел с mitmproxy. Я отправил запрос, и в результате было получено сообщение no_shared_ciphers_available
. Я не знаю, правильно ли я загрузил сертификаты или они вообще не загружены.
Итак, вопросы:
- Правильно ли я, что мне нужен (обратный) прокси?
- Можно ли вообще обойтись этим подходом?
- Если оба ответа на оба вопроса утвердительные, что проще всего настроить и есть ли пример?