Создание локального центра сертификации (CA) и выпуск TLS-сертификата
Если у вас нет коммерческого SSL-сертификата, для обеспечения безопасного HTTPS-соединения необходимо создать собственный (локальный) центр сертификации и выпустить самоподписанный сертификат.
Ниже приведен пример выпуска сертификата для домена oo.local (используется в OnlyOffice):
1. Создание ключа и сертификата локального центра сертификации (CA).
- Создайте приватный ключ (RSA, 2048 бит) для вашего локального CA, который будет использоваться для подписи всех последующих сертификатов:
openssl genrsa -out ca.key 2048
- Если коммерческий сертификат отсутствует, создайте самоподписанный сертификат CA:
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=Local CA"
3650здесь — срок действия сертификата. Можно задать свое значение.- Параметр
-subjуказывает DN (distinguished name) с CN «Local CA».
2. Подготовка запроса на сертификат (CSR) для oo.local.
- Сгенерируйте приватный ключ непосредственно для сервера, на котором будет работать OnlyOffice:
openssl genrsa -out oo.local.key 2048
- Создайте запрос на сертификат (CSR). Здесь указываются альтернативные имена (SAN), чтобы сертификат считался действительным как для основного домена
oo.local, так и для его поддоменов *.oo.local:openssl req -new -key oo.local.key -out oo.local.csr -subj "/CN=oo.local" -addext "subjectAltName=DNS:oo.local,DNS:*.oo.local"
3. Подпись сертификата для oo.local вашим локальным CA.
Завершите выпуск сертификата oo.local.crt сроком на 1 год. Команда подтверждает (подписывает) запрос вашим секретным ключом ca.key:
openssl x509 -req -days 365 -in oo.local.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out oo.local.crt -extfile <(printf "subjectAltName=DNS:oo.local,DNS:*.oo.local")
4. Установка CA-сертификата в систему (доверие).
Чтобы избежать ошибки «Небезопасное соединение» в браузерах и сервисах, систему нужно заставить «доверять» вашему локальному CA. Выполните инструкцию в зависимости от используемой ОС:
Для Linux:
- Выполните команду:
sudo cp ca.crt /usr/local/share/ca-certificates/
- Выполните команду:
sudo update-ca-certificates
Для Windows:
- Откройте
certmgr.msc. - Перейдите в Доверенные корневые центры сертификации → Сертификаты.
- Выберите Действие → Все задачи → Импорт.
- Импортируйте файл
ca.crt.
Для macOS:
- Откройте Keychain Access.
- Выберите связку System.
- Импоруйте файл
ca.crt. - Для сертификата установите параметр доверия Always Trust.
Результат выполнения:
ca.crt,ca.key— локальный центр сертификацииoo.local.crt,oo.local.key— TLS-сертификат и ключ дляoo.local
Таким образом CA установлен в систему и будет распознаваться как доверенный (в том числе браузерами и сервисами, использующими системное хранилище).