Добавление собственных 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

  1. Скопируйте файлы сертификата 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

  2. Перезапустите сервер RuDesktop:

    rude restart
    

После этого сервер будет работать с добавленным сертификатом

Добавление сертификата с изменением конфигурации nginx

Важно

Стандартные кейсы: в структуре используется мост RuDesktop для балансировки нагрузки или сертификат должен обслуживать только веб-интерфейс, а не нативный канал relay / rz. В этом случае сертификат подключается на уровне nginx, а не записывается в CA.pem / CA.key

  1. Скопируйте файлы сертификата full-chain (например, wc.pem и wc.key) в указанную директорию:

    /etc/ssl/private
    
  2. Откройте конфигурацию nginx:

    nano /etc/nginx/sites-enabled/rudesktop
    
  3. Замените пути к сертификатам, например:

    ssl_certificate     /etc/ssl/private/wc.pem;
    ssl_certificate_key /etc/ssl/private/wc.key;
    
  4. Проверьте конфигурацию nginx:

    nginx -t
    
  5. Укажите пути до сертификатов в /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'

  6. Перезапустите сервер RuDesktop:

    rude restart
    

После этого сервер будет работать с добавленным сертификатом