Добавление собственных SSL-сертификатов¶
Добавление собственных SSL-сертификатов — замена встроенных самоподписанных сертификатов на доверенные (например, выданные корпоративным центром сертификации или Let’s Encrypt). Раздел описывает два сценария — прямую запись в /var/lib/rudesktop/ca/ и переопределение через nginx
Важно
Перед заменой сертификатов рекомендуется сделать резервную копию каталога /var/lib/rudesktop/ca/ — rude reinstall удаляет файлы CA, поэтому они не сохраняются автоматически
Примечание
Встроенный nginx отдаёт заголовок Strict-Transport-Security: max-age=31536000; includeSubDomains. Это означает, что браузер, один раз открывший веб-интерфейс по HTTPS, будет принудительно использовать HTTPS на этом домене ещё год — даже при последующих попытках обратиться по http://. Учитывайте это, если планируете временно откатываться на HTTP или менять схему публикации
Добавление сертификата и ключа напрямую в /var/lib/rudesktop/ca/¶
Важно
Стандартные кейсы: необходимо защитить подключение с помощью корпоративного сертификата. В структуре отсутствует мост RuDesktop для балансировки нагрузки. Если требуется единый сертификат на несколько поддоменов — используйте wildcard
Скопируйте файлы сертификата
full-chainи ключа в следующие директории:/var/lib/rudesktop/ca/CA.pem /var/lib/rudesktop/ca/CA.key
Важно
Содержимое должно быть в следующем формате:
-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----
Не удаляйте существующие сертификаты RuDesktop, добавляйте новые строки под уже имеющимися блоками
Примечание
Пути к этим файлам можно переопределить через переменные окружения
CA_CERT_PATHиCA_KEY_PATHдля нативного компонентаrelay/rzПерезапустите сервер RuDesktop:
rude restart
После этого сервер будет работать с добавленным сертификатом
Добавление сертификата с изменением конфигурации nginx¶
Важно
Стандартные кейсы: в структуре используется мост RuDesktop для балансировки нагрузки или сертификат должен обслуживать только веб-интерфейс, а не нативный канал relay / rz. В этом случае сертификат подключается на уровне nginx, а не записывается в CA.pem / CA.key
Скопируйте файлы сертификата
full-chain(например,wc.pemиwc.key) в указанную директорию:/etc/ssl/privateОткройте конфигурацию nginx:
nano /etc/nginx/sites-enabled/rudesktopЗамените пути к сертификатам, например:
ssl_certificate /etc/ssl/private/wc.pem; ssl_certificate_key /etc/ssl/private/wc.key;
Проверьте конфигурацию nginx:
nginx -tУкажите пути до сертификатов в
/etc/rudesktop-relay.toml(для нативного компонентаrelay/rz):ca_cert = "/path/to/cert" ca_key = "/path/to/key"
Важно
Если файл
/etc/rudesktop-relay.tomlотсутствует, создайте его в указанной директории и убедитесь, что в/etc/default/rudesktopзаданRELAY_ARGS='-C /etc/rudesktop-relay.toml'Перезапустите сервер RuDesktop:
rude restart
После этого сервер будет работать с добавленным сертификатом