Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

REGISTRY_AUTH_TLS_FAIL Linux / DevOps

Развертывание приватного Docker Registry с HTTP-аутентификацией и SSL/TLS

Обновлено: 21.08.2026
  • Ошибка http: server gave HTTP response to HTTPS client при попытке docker push/pull.
  • Ошибка x509: certificate signed by unknown authority при использовании самоподписанных сертификатов.
  • Несанкционированный доступ к образам компании из-за отсутствия аутентификации.

1. Генерация учетных данных htpasswd

mkdir -p /opt/registry/auth /opt/registry/data /opt/registry/certs
apt-get install -y apache2-utils
htpasswd -B -b -c /opt/registry/auth/htpasswd reguser SecretPassword123

2. Конфигурация и запуск Docker Registry

Создайте docker-compose.yml:

version: '3.8'

services:
  registry:
    image: registry:2
    restart: always
    ports:
      - "5000:5000"
    environment:
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: "Registry Realm"
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
      REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
      REGISTRY_HTTP_TLS_KEY: /certs/domain.key
      REGISTRY_STORAGE_DELETE_ENABLED: "true"
    volumes:
      - /opt/registry/data:/var/lib/registry
      - /opt/registry/auth:/auth:ro
      - /opt/registry/certs:/certs:ro
docker compose up -d

3. Добавление доверенного сертификата на клиентах

Скопируйте корневой сертификат в системный каталог Docker:

mkdir -p /etc/docker/certs.d/registry.example.com:5000
cp domain.crt /etc/docker/certs.d/registry.example.com:5000/ca.crt
systemctl restart docker

4. Проверка авторизации и пуша образов

docker login registry.example.com:5000 -u reguser -p SecretPassword123
docker tag nginx:latest registry.example.com:5000/my-nginx:v1
docker push registry.example.com:5000/my-nginx:v1
💡 Практика специалистов: Никогда не используйте опцию insecure-registries в production. Настройте корректный wildcard-сертификат Let's Encrypt или внутренний CA компании через /etc/docker/certs.d/.

Частые вопросы (FAQ)

Как включить удаление старых образов (Garbage Collection) в реестре?

Включите флаг REGISTRY_STORAGE_DELETE_ENABLED: true, удалите манифест через API и запустите сборщик мусора: docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml.

Как временно разрешить подключение к небезопасному HTTP-реестру?

Добавьте 'insecure-registries': ['192.168.1.100:5000'] в /etc/docker/daemon.json и перезапустите демон Docker.

Полезные материалы
Рекомендуем