Представь, что твой браузер каждый раз пугается, заходя в веб-интерфейс TrueNAS, потому что соединение «не защищено». Знакомо? Это решается установкой SSL/TLS сертификата. Давай разберем, как превратить это предупреждение в заветный замочек, будь то автоматический сертификат от Let's Encrypt или твой собственный, выпущенный удостоверяющим центром.
Что такое SSL/TLS сертификат в TrueNAS и зачем он нужен?
В контексте TrueNAS сертификат — это цифровой паспорт, который удостоверяет подлинность твоего сервера и шифрует весь трафик между твоим браузером и веб-интерфейсом (WebUI) или другими сервисами (SMB, WebDAV, FTP с TLS). Без него данные передаются в открытом виде, что небезопасно, особенно в локальной сети.
Типы сертификатов в TrueNAS: Выбираем правильный
TrueNAS (как CORE, так и Scale) предлагает несколько путей. Давай сравним их, чтобы ты выбрал оптимальный.
| Тип сертификата | Плюсы | Минусы | Идеально для |
|---|---|---|---|
| Встроенный (Self-Signed) | Создается автоматически, не требует внешних сервисов. | Браузеры не доверяют ему, показывают ошибку. Нет автоматического продления. | Тестирование, закрытые лабораторные среды. |
| Let's Encrypt (ACME) | Бесплатный, автоматическое продление, доверен всеми браузерами. | Требует доменного имени и доступа из интернета (или DNS-верификацию). | Публичные сервисы, домашние серверы с белым IP или DynDNS. |
| Импортированный (от УЦ) | Максимальное доверие (если УЦ публичный), полный контроль. | Стоимость (для публичных УЦ), ручное обновление. | Корпоративные среды, строгие политики безопасности. |
| Внутренний УЦ (Private CA) | Полный контроль в изолированной сети, доверие на всех внутренних устройствах. | Сложность настройки, нужно устанавливать корневой сертификат на всех клиентах. | Корпоративные локальные сети, homelab с множеством сервисов. |
Пошаговое руководство: Настройка сертификата Let's Encrypt в TrueNAS
Это самый популярный и удобный способ для домашних и небольших проектных серверов.
Шаг 1: Подготовка — Домен и сеть
- Домен: У тебя должен быть домен (например,
nas.mydomain.com). Можно использовать бесплатные DynDNS-сервисы (duckdns.org, noip.com). - Проброс портов: На роутере пробей порт 80 (HTTP) и/или 443 (HTTPS) на локальный IP-адрес твоего TrueNAS. Для верификации через HTTP (http-01) нужен порт 80.
- ACME-аккаунт: TrueNAS создаст его автоматически при первой настройке.
Шаг 2: Создание сертификата в веб-интерфейсе
- Зайди в System Settings → Certificates.
- Нажми «Add» и выбери «ACME Certificate».
- Заполни форму:
- Name: Произвольное имя (например, «nas-letsencrypt»).
- Domain: Твой полный домен (FQDN) —
nas.mydomain.com. - ACME Server: Оставь «Let's Encrypt Production» для реального сертификата.
- Challenge Type: Выбери «HTTP-01» (проще, требует проброса порта 80). Если порт 80 закрыт, используй «DNS-01» и настрой API-ключ от твоего DNS-провайдера.
# Пример конфигурации ACME в TrueNAS (YAML-представление)
name: "nas-letsencrypt"
type: ACME
domains:
- "nas.mydomain.com"
acme_server_uri: "https://acme-v02.api.letsencrypt.org/directory"
challenge_type: "http-01"
automatic_renewal: true # Критически важная опция!
Шаг 3: Применение сертификата к веб-интерфейсу
- После успешного создания сертификата вернись в System Settings → General.
- В поле «GUI SSL Certificate» выбери только что созданный сертификат из выпадающего списка.
- Сохрани настройки. Система предложит перезагрузить веб-интерфейс.
- Теперь заходи на свой сервер по https://nas.mydomain.com — должен быть зеленый замочек!
Ручная установка сертификата от УЦ (Comodo, Sectigo и др.)
Если у тебя уже есть коммерческий сертификат или ты развернул свой корневой УЦ (Private CA).
Шаг 1: Создание запроса на сертификат (CSR) в TrueNAS
- В System Settings → Certificates нажми «Add» → «Certificate Signing Request».
- Заполни детали:
- Common Name (CN): Точное доменное имя сервера (например,
truenas.localили домен). - Organization: Твоя организация.
- Subject Alternate Names (SAN): Добавь все альтернативные имена (IP-адрес, другие DNS-имена).
- Common Name (CN): Точное доменное имя сервера (например,
- Нажми «Create». Система сгенерирует приватный ключ и CSR-файл.
- Экспортируй CSR: Найди созданную запись в списке, открой ее и скачай файл
.csr.
# Пример содержимого скачанного CSR-файла
-----BEGIN CERTIFICATE REQUEST-----
MIIC... (тут будет длинная base64-строка)
-----END CERTIFICATE REQUEST-----
Шаг 2: Получение подписанного сертификата от УЦ
Передай CSR-файл в выбранный удостоверяющий центр (публичный или твой внутренний). В ответ ты получишь:
- Файл сертификата (обычно
.crtили.pem). - Цепочку доверия (Intermediate/Chain certificate) — может быть отдельным файлом или включен в основной.
Шаг 3: Импорт сертификата в TrueNAS
- В Certificates нажми «Add» → «Import Certificate».
- Заполни поля:
- Name: Укажи понятное имя.
- Certificate: Вставь содержимое твоего файла
.crt(включая строки BEGIN/END CERTIFICATE). - Private Key: Система автоматически подтянет ключ из ранее созданного CSR. Убедись, что выбран правильный.
- Certificate Chain (Optional): Вставь промежуточные сертификаты от УЦ, если они идут отдельно.
- Нажми «Save». Теперь можешь назначить этот сертификат как GUI SSL Certificate.
Использование сертификатов для других служб (SMB, FTP, WebDAV)
Сила TrueNAS в унификации. Один импортированный или ACME-сертификат можно использовать для шифрования множества протоколов.
- SMB (Samba): В настройках общей папки (Share) включи опцию «Enable SMB3 encryption». Сервер будет использовать системный сертификат.
- FTP с TLS (FTPS): В службе FTP (Services → FTP) включи «TLS Support» и выбери сертификат в соответствующем поле.
- WebDAV: При создании WebDAV-шара можно указать сертификат для HTTPS-доступа.
Частые проблемы и их решение (Troubleshooting)
Ошибка «Certificate is not valid yet» или «expired»
Причина: Рассинхронизация времени на сервере TrueNAS.
Решение: Убедись, что служба NTP (System Settings → NTP Servers) работает и корректно синхронизирует время.
Let's Encrypt не обновляется автоматически
Причина: Сбой задачи по расписанию или проблемы с доступом к порту 80/443 из интернета.
Решение:
- Проверь задачи Cron (Tasks → Cron Jobs). Должна быть задача «acme_cert_renew».
- Проверь логи ACME: System Settings → Advanced → Save Debug. В архиве ищи файлы
acme_*.log. - Временно открой порт 80 и попробуй обновить сертификат вручную через кнопку «Renew» в карточке сертификата.
Браузер не доверяет самоподписанному сертификату
Это ожидаемо. Есть два пути:
- Игнорировать (небезопасно): В Chrome/Edge нажми «Дополнительно» → «Перейти на сайт (небезопасно)».
- Импортировать корневой сертификат (правильно): Если ты используешь Private CA, экспортируй корневой сертификат из TrueNAS (Certificates → экспорт CA) и установи его в хранилище доверенных корневых сертификатов на своих клиентах (ПК, телефонах).
Лучшие практики управления сертификатами в TrueNAS
- Именуй понятно: Используй имена вроде «webui-letsencrypt-2025», «internal-ca-smb».
- Всегда включай автообновление (Renal) для ACME.
- Резервируй приватные ключи: Перед важными обновлениями TrueNAS экспортируй сертификаты с ключами (функция экспорта в интерфейсе).
- Используй SAN: При создании CSR указывай все возможные имена сервера (домен, локальные имена, IP) в поле Subject Alternate Names, чтобы избежать ошибок имени.
- Мониторь истечение срока: В интерфейсе Certificates срок действия отображается явно. Добавь напоминание в календарь за 2 недели до истечения ручных сертификатов.