Files
minio-full/README.md
2025-10-26 12:45:35 +07:00

3.9 KiB
Raw Permalink Blame History

MinIO Patcher

Инструмент для патчинга MinIO бинарного файла с целью замены встроенного публичного ключа лицензии на собственный и генерации соответствующей лицензии.

Описание

Проект позволяет:

  • Заменить встроенный публичный ключ лицензии в бинарном файле MinIO
  • Сгенерировать собственную пару ключей (приватный/публичный)
  • Создать лицензионный файл с использованием нового приватного ключа
  • Запустить модифицированный MinIO с собственной лицензией

Структура проекта

minio-patcher/
├── Dockerfile              # Многоэтапная сборка для патчинга MinIO
├── docker-compose.yaml     # Конфигурация для запуска сервиса
├── generate-keys.sh        # Скрипт генерации ключей ECDSA P-384
├── generate-license.py     # Генератор JWT лицензии
├── replace-key.py          # Замена публичного ключа в бинарном файле
├── requirements.txt        # Python зависимости
└── storage/               # Директория для данных MinIO

Компоненты

generate-keys.sh

Генерирует пару ECDSA ключей с кривой secp384r1:

  • new-private.pem - приватный ключ
  • new-public.pem - публичный ключ

replace-key.py

Заменяет встроенный публичный ключ MinIO на новый:

  • Загружает оригинальный публичный ключ с subnet.min.io
  • Находит и заменяет его в бинарном файле MinIO
  • Создает патченый бинарный файл

generate-license.py

Создает JWT лицензию с параметрами:

  • Организация: "acme"
  • План: "STANDARD"
  • Емкость: 10TB
  • Срок действия: до 2033 года
  • Алгоритм подписи: ES384

Использование

Docker Compose (рекомендуется)

docker-compose up -d

Сервис будет доступен на:

Ручная сборка

# Сборка образа
docker build -t minio-patcher .

# Запуск контейнера
docker run -d \
  -p 9000:9000 \
  -p 9001:9001 \
  -v ./storage:/storage \
  minio-patcher server /storage

Локальное выполнение

# Установка зависимостей
pip install -r requirements.txt

# Генерация ключей
./generate-keys.sh

# Патчинг MinIO (требуется оригинальный бинарный файл)
python3 replace-key.py minio minio-patched new-public.pem

# Генерация лицензии
python3 generate-license.py new-private.pem minio.license

# Запуск с лицензией
MINIO_LICENSE=./minio.license ./minio-patched server ./storage

Требования

  • Docker и Docker Compose
  • Python 3.13+ (для локального запуска)
  • OpenSSL (для генерации ключей)

Безопасность

⚠️ Внимание: Данный инструмент предназначен исключительно для образовательных и тестовых целей. Использование в продакшене может нарушать лицензионные соглашения MinIO.

Лицензия

Проект предоставляется "как есть" без каких-либо гарантий.