Как подключить MinIO на Timeweb к домену и включить HTTPS: Пошаговый гайд

Timeweb предлагает готовый маркетплейс для развертывания MinIO, но по умолчанию он работает на HTTP и без привязки к домену. В этом гайде я расскажу, как правильно подключить MinIO к вашему домену и настроить HTTPS, чтобы обеспечить безопасное соединение. Разберёмся с настройкой SSL, изменением конфигурации и всеми необходимыми шагами для полного подключения.

Что мы сделаем?

  • Привяжем MinIO к домену.
  • Установим и настроим Let’s Encrypt SSL.
  • Перезапустим MinIO с поддержкой HTTPS.
  • Настроим автоматическое обновление сертификата.

Шаг 1: Привязываем MinIO к домену

1.1 Добавляем A-запись в DNS

В панели управления Timeweb добавьте A-запись:

  • Имя: storage.yourdomain.com (или другое имя)
  • Тип: A
  • Значение: IP-адрес вашего сервера

Изменения могут занять до 1 часа.

1.2 Проверяем MinIO

Подключаемся к серверу по SSH:

ssh root@your-server-ip

Проверяем статус MinIO:

systemctl status minio

Если MinIO запущен, увидите:

● minio.service - MinIO Storage Server Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled) Active: active (running) since ...

Шаг 2: Устанавливаем SSL-сертификат Let’s Encrypt

2.1 Устанавливаем Certbot

Если Certbot не установлен, установите его:

sudo apt update && sudo apt install certbot

2.2 Запрашиваем сертификат Let’s Encrypt

sudo certbot certonly --standalone -d storage.yourdomain.com -d www.storage.yourdomain.com
  • certonly – только получение сертификата (без автоматической настройки)
  • --standalone – Certbot временно запустит веб-сервер для подтверждения

После успешного выполнения сертификаты появятся в папке:

/etc/letsencrypt/live/storage.yourdomain.com/

Шаг 3: Настраиваем MinIO на работу с HTTPS

3.1 Копируем сертификаты

MinIO требует, чтобы сертификаты были в папке /etc/minio/certs/.

Создадим нужную папку:

mkdir -p /etc/minio/certs

Копируем сертификаты Let’s Encrypt:

cp /etc/letsencrypt/live/storage.yourdomain.com/fullchain.pem /etc/minio/certs/public.crt cp /etc/letsencrypt/live/storage.yourdomain.com/privkey.pem /etc/minio/certs/private.key

Устанавливаем правильные права:

chown minio-user:minio-user /etc/minio/certs/* chmod 600 /etc/minio/certs/private.key chmod 644 /etc/minio/certs/public.crt

3.2 Перезапускаем MinIO с HTTPS

Открываем файл конфигурации сервиса MinIO:

nano /etc/systemd/system/minio.service

Находим строку ExecStart и заменяем её на следующую, чтобы указать MinIO путь к сертификатам и включить веб-консоль на порту 9001:

ExecStart=/usr/local/bin/minio server --certs-dir /etc/minio/certs --console-address :9001 /home/minio/share/

Открываем конфигурацию MinIO:

nano /etc/default/minio

Находим строку MINIO_SERVER_URL и MINIO_OPTS и изменяем её:

MINIO_SERVER_URL=https://storage.yourdomain.com:9000 MINIO_OPTS="--certs-dir /etc/minio/certs --console-address :9001"

Сохраняем и выходим.

Перезапускаем MinIO:

sudo systemctl daemon-reload sudo systemctl restart minio

Проверяем статус:

systemctl status minio

Теперь MinIO работает по HTTPS и доступен по https://storage.yourdomain.com.

Шаг 4: Автоматическое обновление сертификатов

Сертификаты Let’s Encrypt выпускаются сроком на 90 дней. Добавим автоматическое обновление в cron каждую неделю:

crontab -e

Добавляем строку:

3 3 * * 0 certbot renew --quiet && systemctl restart minio

Это будет запускать обновление SSL каждое воскресенье в 03:03 ночи и перезапускать MinIO.

Заключение

Теперь MinIO привязан к вашему домену и работает с HTTPS. Мы также настроили автоматическое обновление SSL, чтобы MinIO всегда использовал актуальные сертификаты. 🚀

2 комментария