Представь, что твой TrueNAS сервер — это крепость с данными. По умолчанию ворота (веб-интерфейс) открыты по HTTP — это как оставить ключ под ковриком. Любой, кто перехватит трафик в твоей сети, сможет увидеть логины, пароли и управлять твоим хранилищем. Давай разберем, как превратить эти уязвимые ворота в защищенный HTTPS портал с шифрованием и доверенными сертификатами.
Зачем переходить с HTTP на HTTPS в TrueNAS?
Когда ты впервые устанавливаешь TrueNAS, веб-интерфейс доступен только по HTTP. Это создает несколько проблем:
- Перехват учетных данных — пароли передаются в открытом виде
- Отсутствие шифрования — все данные сессии видны как на ладони
- Предупреждения браузера — Chrome и Firefox ругаются на небезопасное соединение
- Невозможность удаленного доступа — многие сервисы блокируют HTTP
Подготовка: что нужно знать перед настройкой HTTPS
Прежде чем мы начнем, давай определимся с терминами:
| Термин | Описание | Важность для TrueNAS |
|---|---|---|
| SSL/TLS | Протоколы шифрования | Основа безопасного соединения |
| Сертификат | Цифровой паспорт сервера | Подтверждает подлинность TrueNAS |
| Порт 443 | Стандартный порт HTTPS | Через него работает защищенный доступ |
Шаг 1: Создание SSL-сертификата для TrueNAS
Есть три основных варианта сертификатов. Выбери подходящий:
Вариант A: Самоподписанный сертификат (быстро и для локальной сети)
Идеально для домашнего использования, где ты доверяешь своему серверу:
# Войди в оболочку TrueNAS (Shell)
# Создаем приватный ключ и самоподписанный сертификат
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /mnt/tank/certs/truenas.key \
-out /mnt/tank/certs/truenas.crt \
-subj "/C=RU/ST=Moscow/L=Moscow/O=HomeLab/CN=truenas.local"
/mnt/tank/certs/ на путь к твоему пулу данных и truenas.local на доменное имя или IP твоего сервера. Параметр -days 365 устанавливает срок действия на год.
Вариант B: Сертификат от Let's Encrypt (бесплатно и доверенный)
Если у тебя есть доменное имя и ты можешь подтвердить владение им:
# Установи certbot если его нет
pkg install py39-certbot
# Получаем сертификат (DNS или HTTP challenge)
certbot certonly --standalone \
-d nas.tvoi-domain.ru \
--email admin@tvoi-domain.ru \
--agree-tos \
--non-interactive
Шаг 2: Настройка HTTPS в веб-интерфейсе TrueNAS
Теперь, когда у тебя есть сертификат, давай применим его:
-
Зайди в System Settings → General
В разделе "GUI" найди поля для сертификата:
-
Загрузи сертификат и ключ
Нажми "Upload" рядом с "SSL Certificate" и выбери твой .crt файл. Повтори для "Private Key" с .key файлом.
-
Настрой порты
Убедись, что:
- WebUI HTTP Port: 80 (или другой, если занят)
- WebUI HTTPS Port: 443 (стандартный для HTTPS)
-
Включи HTTPS редирект
Отметь "WebUI HTTP -> HTTPS Redirect" — это автоматически перенаправит все HTTP запросы на защищенное соединение.
-
Сохрани и перезагрузи веб-интерфейс
Нажми "Save", затем "Restart Web Service". Теперь твой TrueNAS доступен по https://IP-адрес:443
Шаг 3: Решение частых проблем с HTTPS в TrueNAS
Проблема 1: Браузер не доверяет самоподписанному сертификату
Решение — добавить сертификат в доверенные:
# Для Linux (Ubuntu/Debian)
sudo cp truenas.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
# Для Windows
# Дважды кликни на .crt файл → "Установить сертификат"
# Выбери "Поместить все сертификаты в следующее хранилище"
# → "Доверенные корневые центры сертификации"
Проблема 2: Ошибка "SSL_ERROR_BAD_CERT_DOMAIN"
Сертификат выдан для одного имени, а ты обращаешься по другому. Решения:
- Используй в адресной строке именно то имя, которое указано в сертификате (CN)
- Создай новый сертификат с правильным именем
- Используй wildcard сертификат (*.tvoi-domain.ru)
Проблема 3: Не работает редирект с HTTP на HTTPS
Проверь конфигурацию nginx, который используется в TrueNAS:
# Проверь конфиг nginx
cat /usr/local/etc/nginx/nginx.conf | grep -A5 -B5 "redirect"
# Или посмотри логи
tail -f /var/log/nginx/access.log
Дополнительные настройки безопасности
Настройка HSTS (HTTP Strict Transport Security)
Чтобы браузеры всегда использовали HTTPS, добавь заголовок HSTS:
# Создай или отредактируй кастомный конфиг nginx
echo 'add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;' \
> /usr/local/etc/nginx/custom/hsts.conf
Автоматическое обновление Let's Encrypt сертификатов
Настрой cron задачу для автоматического обновления:
# Создай скрипт обновления
cat > /root/renew_cert.sh << 'EOF'
#!/bin/bash
certbot renew --quiet
# Перезагрузи nginx чтобы применить новый сертификат
service nginx reload
EOF
chmod +x /root/renew_cert.sh
# Добавь в cron (каждые 2 месяца)
echo "0 3 1 */2 * /root/renew_cert.sh" | crontab -
Сравнение HTTP и HTTPS в TrueNAS
| Параметр | HTTP (по умолчанию) | HTTPS (после настройки) |
|---|---|---|
| Безопасность | Низкая, данные открыты | Высокая, шифрование TLS |
| Порт | 80 | 443 |
| Браузер | Предупреждение "Небезопасно" | Замок в адресной строке |
| Производительность | Немного быстрее | Незначительные накладные расходы |
Частые вопросы (FAQ) по HTTPS в TrueNAS
Можно ли использовать HTTPS и HTTP одновременно?
Да, TrueNAS может слушать оба порта одновременно. Но рекомендуется включить редирект с HTTP на HTTPS, чтобы все соединения были защищены.
Что делать, если я забыл пароль и не могу войти по HTTPS?
Подключись напрямую к серверу (клавиатура+монитор или IPMI) и выполни в консоли: midclt call auth.reset_password \"{\"username\": \"root\", \"password\": \"новый_пароль\"}"
Нужно ли настраивать HTTPS для SMB/NFS shares?
Нет, HTTPS настраивается только для веб-интерфейса TrueNAS. Для файловых протоколов (SMB, NFS, AFP) используются другие механизмы аутентификации и шифрования.
Как проверить, что HTTPS работает правильно?
Используй онлайн-инструменты типа SSL Labs Test или выполни команду: openssl s_client -connect truenas.local:443 -servername truenas.local. Убедись, что в выводе есть "Verify return code: 0 (ok)".
Заключение
Настройка HTTPS в TrueNAS — это не просто "галочка" в настройках безопасности. Это фундаментальное улучшение защиты твоих данных. Потратив 30 минут сегодня на настройку SSL/TLS, ты предотвращаешь потенциальные утечки данных в будущем.
Помни: даже если твой TrueNAS находится в локальной сети, переход на HTTPS защищает от атак "человек посередине" (MITM) и повышает общий уровень безопасности. А с бесплатными сертификатами от Let's Encrypt этот переход вообще не требует финансовых затрат.