105 lines
3.9 KiB
Markdown
105 lines
3.9 KiB
Markdown
# 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 (рекомендуется)
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
Сервис будет доступен на:
|
|
- API: http://localhost:9000
|
|
- Web UI: http://localhost:9001
|
|
|
|
### Ручная сборка
|
|
|
|
```bash
|
|
# Сборка образа
|
|
docker build -t minio-patcher .
|
|
|
|
# Запуск контейнера
|
|
docker run -d \
|
|
-p 9000:9000 \
|
|
-p 9001:9001 \
|
|
-v ./storage:/storage \
|
|
minio-patcher server /storage
|
|
```
|
|
|
|
### Локальное выполнение
|
|
|
|
```bash
|
|
# Установка зависимостей
|
|
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.
|
|
|
|
## Лицензия
|
|
|
|
Проект предоставляется "как есть" без каких-либо гарантий.
|