This commit is contained in:
104
README.md
Normal file
104
README.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# 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"
|
||||
- Емкость: 1GB
|
||||
- Срок действия: до 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.
|
||||
|
||||
## Лицензия
|
||||
|
||||
Проект предоставляется "как есть" без каких-либо гарантий.
|
||||
Reference in New Issue
Block a user