2016-03-16 4 views
2

Я пытаюсь опубликовать изображение докера в частном репозитории, но я не могу понять, где я должен разместить сертификат SSL на машине Windows.Docker SSL Cert для windows

В соответствии с этой страницей https://docs.docker.com/engine/security/certificates/ сертификат должен находиться в каталоге /etc/docker/certs.d/HOSTNAME. Это явно не путь к Windows. Однако, когда я запускаю терминал докера, и я набираю cd/etc, он приводит меня в рабочий каталог.

После некоторого расследования я обнаружил, что он собирается в C: \ Program Files \ Git \ etc, поэтому я создал каталог docker \ certs.d \ docker-registry.lan (docker-registry.lan - наш внутренний реестр) под этим путем. Затем я перезапускаю докер-машину с остановкой докер-машины, командами запуска докеров.

Однако, когда я пытаюсь нажим я получаю сообщение об ошибке: x509: сертификат, подписанный неизвестным органом

Этот ключ работает для других, которые делают это через Linux, так что я знаю, что ключ в порядке. Я считаю, что проблема в том, что я не храню ключ в правильном месте.

Я пробовал кучу разных действий для ключа, но никто не работает. Это должно быть легким решением, которое мне не хватает. Может кто-то, кто решил это, поможет мне?

Благодаря

+0

Путь относится к пути на докерной машине с именем 'default', который на самом деле является VirtualBox vm. Вы можете использовать 'docker-machine scp local_certs_path default:/etc/docker/certs.d/HOSTNAME' для копирования сертификатов на этот компьютер. –

+0

@warmoverflow Спасибо, это имеет большой смысл. Однако, когда я пытаюсь выполнить '$ docker-machine scp /c/ca.crt default:/etc/docker/certs.d/docker-registry.lan', я получаю следующую ошибку: ' Ошибка при загрузке хоста: Ошибка при загрузке хоста: не существует: «C» ' – ryanmc

+0

К сожалению, я не могу проверить на данный момент. Можете ли вы попробовать '// c/ca.crt'? –

ответ

0

Решение

  1. Переключение в локальную папку, где ca.crt находится в
  2. Скопируйте файл в виртуальную машину: docker-machine scp ca.crt default:.
  3. Войти на виртуальной машине: docker-machine ssh default
  4. Создайте нужную папку: sudo mkdir /var/lib/boot2docker/certs
  5. Скопируйте сертификат на место: sudo cp ca.crt /var/lib/boot2docker/certs
  6. Выход ВМ: exit
  7. Restart ВМ: docker-machine restart default

Ответ основан на https://github.com/docker/machine/issues/1717 и https://github.com/boot2docker/boot2docker/issues/347

0

@warmoverflow

Привет, а ваш ответ Docker может автоматически регистрировать сертификаты.

но в соответствии с «README.md» от boot2docker вы можете использовать файлы .crt, но .pem.

(в формате .pem) в каталог /var/lib/boot2docker/certs/, и Boot2Docker автоматически загрузить его из раздела инерционности при загрузке.

просто переименуйте файл .crt в файл .pem.

https://github.com/boot2docker/boot2docker/pull/807.

Смежные вопросы