98 lines
3.1 KiB
Markdown
98 lines
3.1 KiB
Markdown
# Ручная настройка SSL для MY Network Bootstrap Node
|
||
|
||
## Проблема
|
||
Пользователь `service` не имеет sudo прав для настройки nginx и SSL сертификатов.
|
||
|
||
## Решение
|
||
Необходимо выполнить команды от имени root.
|
||
|
||
## Инструкция
|
||
|
||
### 1. Подключение к серверу как root
|
||
```bash
|
||
ssh root@2.58.65.188
|
||
```
|
||
|
||
### 2. Копирование скрипта
|
||
```bash
|
||
cp /home/service/setup_nginx_ssl.sh /root/
|
||
chmod +x /root/setup_nginx_ssl.sh
|
||
```
|
||
|
||
### 3. Запуск настройки SSL
|
||
```bash
|
||
cd /root
|
||
./setup_nginx_ssl.sh
|
||
```
|
||
|
||
## Альтернативный способ - добавить service в sudoers
|
||
|
||
### 1. Подключиться как root
|
||
```bash
|
||
ssh root@2.58.65.188
|
||
```
|
||
|
||
### 2. Добавить service в sudoers
|
||
```bash
|
||
echo "service ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/service
|
||
```
|
||
|
||
### 3. Запустить скрипт от service
|
||
```bash
|
||
su - service
|
||
cd /home/service
|
||
sudo ./setup_nginx_ssl.sh
|
||
```
|
||
|
||
## Что делает скрипт setup_nginx_ssl.sh
|
||
|
||
1. **Обновляет систему** и устанавливает nginx, certbot, ufw
|
||
2. **Настраивает firewall** (UFW):
|
||
- Разрешает SSH (22), HTTP (80), HTTPS (443)
|
||
- Блокирует остальные порты
|
||
3. **Получает SSL сертификат** от Let's Encrypt для домена my-public-node-3.projscale.dev
|
||
4. **Настраивает nginx**:
|
||
- HTTP -> HTTPS redirect
|
||
- Proxy для MY Network сервиса (порт 15100)
|
||
- Security headers
|
||
- Rate limiting
|
||
- CORS headers
|
||
5. **Настраивает автообновление** SSL сертификатов через cron
|
||
6. **Проверяет работоспособность** всех компонентов
|
||
|
||
## Ожидаемый результат
|
||
|
||
После выполнения скрипта MY Network Bootstrap Node будет доступен по HTTPS:
|
||
|
||
- **https://my-public-node-3.projscale.dev** - основной сайт
|
||
- **https://my-public-node-3.projscale.dev/api/my/health** - health check
|
||
- **https://my-public-node-3.projscale.dev/api/my/bootstrap/config** - bootstrap конфигурация
|
||
- **https://my-public-node-3.projscale.dev/api/my/monitor/** - веб-мониторинг
|
||
|
||
## Безопасность
|
||
|
||
- ✅ SSL/TLS сертификат от Let's Encrypt
|
||
- ✅ HTTP -> HTTPS redirect
|
||
- ✅ Security headers (HSTS, X-Frame-Options, etc.)
|
||
- ✅ Rate limiting для API endpoints
|
||
- ✅ Firewall (UFW) с минимальными открытыми портами
|
||
- ✅ Автообновление SSL сертификатов
|
||
|
||
## Проверка после установки
|
||
|
||
```bash
|
||
# Проверка nginx
|
||
systemctl status nginx
|
||
|
||
# Проверка MY Network сервиса
|
||
systemctl status my-network
|
||
|
||
# Проверка SSL сертификата
|
||
curl -I https://my-public-node-3.projscale.dev
|
||
|
||
# Проверка API
|
||
curl https://my-public-node-3.projscale.dev/api/my/health
|
||
|
||
# Логи nginx
|
||
tail -f /var/log/nginx/access.log
|
||
tail -f /var/log/nginx/error.log |