Ответ mooduckduck в «Ohook теперь не охук...»2
Спасибо, наконец дошли руки пристрелить KMS сервер на Ратиборус и Windows 7.
Чуть переделал, добавил SSL и Basic Auth.
docker-compose.yaml:
services:
# 1. Сам сервер активации
kms:
image: 11notes/kms:1.0.3
restart: unless-stopped
ports:
- "1688:1688"
volumes:
- kms-data:/kms/var
networks:
- kms-network
# 2. Веб-интерфейс
kms-gui:
image: 11notes/kms-gui:1.0.3
restart: unless-stopped
expose:
- "3000"
volumes:
- kms-data:/kms/var
networks:
- kms-network
depends_on:
kms:
condition: service_healthy
# 3. Прокси-сервер для SSL и Авторизации
nginx:
image: nginx:alpine
restart: unless-stopped
ports:
- "80:80" # Для автоматического редиректа на 443
- "443:443" # Наш защищенный HTTPS
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./.htpasswd:/etc/nginx/.htpasswd:ro
- ./certs:/etc/nginx/certs:ro
networks:
- kms-network
depends_on:
- kms-gui
volumes:
kms-data:
networks:
kms-network:
nginx.conf:
events {
worker_connections 1024;
}
http {
# 1. Редирект с HTTP (80) на HTTPS (443)
server {
listen 80;
server_name hostname FQDN; # Укажите hostname/FQDN/IP можно несколько через пробел
# Возвращаем 301 редирект на тот же хост и URL, но через https
return 301 https://$host$request_uri;
}
# 2. Основной сервер HTTPS (443)
server {
listen 443 ssl;
server_name hostname FQDN; # Укажите hostname/FQDN/IP можно несколько через пробел
ssl_certificate /etc/nginx/certs/kms.crt;
ssl_certificate_key /etc/nginx/certs/kms.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
# Авторизация по паролю
auth_basic "KMS Server Admin Area";
auth_basic_user_file /etc/nginx/.htpasswd;
# Проксирование на веб-интерфейс kms
proxy_pass http://kms-gui:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
В папке cert ложим/кладем серт и закрытый ключ. В моем случае у нас собственный CA.
.htpasswd понятно логин/пароль



