Создание сертификата «Let’s Encrypt» на Linux
Для полноценного использования TrueConf Server и других продуктов Труконф необходимо наличие TLS сертификата. Например, для:
- синхронизации TrueConf Server с LDAP;
- подключения к конференциям TrueConf Server через браузер;
- работы веб-интерфейса TrueConf Group;
- настройки HTTPS в TrueConf AI Server;
- подключения к конференциям через браузер на TrueConf MCU.
Подготовка
Чтобы успешно сгенерировать и использовать бесплатный сертификат Let’s Encrypt, вам необходимо проделать следующие подготовительные действия:
- Установить требуемое решение из списка выше.
- Зарегистрировать доменное имя с публичным (белым) IP-адресом.
- Открыть порт 80 на сервере, где будет происходить получение сертификата.
Если выписывается сертификат для зарегистрированного домена, к которому относится ваш сервер, то можно использовать подтверждение через txt запись как показано в официальной документации acme.sh.
Генерация сертификата
Для TrueConf Group по умолчанию уже создан и используется сертификат, выписанный сервером reg.trueconf.com (для браузеров выглядит как самоподписанный). При необходимости вы можете загрузить сертификат для своего домена, как показано в документации кодека.
Для TrueConf Server, TrueConf MCU и TrueConf AI Server показаны варианты получения сертификата на тех же машинах где эти решения установлены, т.к. это позволит потом автоматически обновлять сертификаты.
Для получения сертификата на ОС Linux будет использована утилита acme.sh. Главное ее преимущество — она подойдет на все поддерживаемые нашими продуктами Linux дистрибутивы.
Для выполнения некоторых указанных перечисленных ниже команд в ОС должна присутствовать программа sudo и пользователь, под которым они запускаются, должен быть в соответствующей группе. В Debian по умолчанию sudo может отсутствовать, проверьте её наличие командой sudo -V и установите при необходимости с помощью команды apt install sudo (выполняется под учётной записью root). Для добавления пользователя с логином user в группу sudo выполните usermod -a -G sudo user под учётной записью root.
- Установите утилиту acme.sh с указанием вашего email для уведомлений с помощью команды:
- Принудительно перезапустите терминал командой:
- По умолчанию в данной утилите используется центр сертификации ZeroSSL, который может быть недоступен по ряду причин. Поэтому переключите центр сертификации на Let’s Encrypt. Для этого выполните команду:
- Чтобы у вас всегда была актуальная версия утилиты включите автоматическое обновление с помощью команды:
- Перед использованием команды, убедитесь, что на сервере не запущена служба веб-сервера или любая другая служба, которая использует 80 порт. В противном случае команда не сработает, т. к. утилита использует свой собственный веб-сервер для подтверждения владения доменом.
- Остановите веб-службу решения Труконф, для которого готовите сертификат:
- TrueConf Server:
- TrueConf MCU:
- TrueConf AI Server:
- Сгенерируйте сертификат Let’s Encrypt с помощью команды:
--issue— параметр для получения сертификата;--standalone— запускает собственный веб-сервер для аутентификации при получении сертификата;-d— указывает домен для которого нужно получить сертификат;trueconf.domain.ru— доменное имя вашего сервера, указанное при его регистрации.- Если генерация прошла успешно, то вы увидите сообщение о создании сертификата (cert.pem и privkey.pem) и директории, куда они сохранились, по умолчанию это:
|
1 |
curl https://get.acme.sh | sh -s email=user@example.com |
|
1 |
source ~/.bashrc |
|
1 |
acme.sh --set-default-ca --server letsencrypt |
|
1 |
acme.sh --upgrade --auto-upgrade |
|
1 |
sudo systemctl stop trueconf-web |
|
1 |
sudo systemctl stop tcmcu-webproxy |
|
1 |
sudo systemctl stop trueconf-ai-manager |
Т.к. для кодека TrueConf Group сертификат выписывается на отдельной машине, то надо просто убедиться что на этом ПК свободен TCP порт 80.
|
1 |
acme.sh --issue --standalone -d trueconf.domain.ru |
Расшифровка параметров:
/home/$USER/.acme.sh/trueconf.domain.ru/
Установка сертификата на TrueConf Server
- Скопируйте файлы сертификата и ключа со сменой расширений на поддерживаемые сервером:
- файл сертификата с переименованием и сменой расширения с pem на crt:
- файл ключа с переименованием и сменой расширения с pem на key:
- Перезапустите веб-службу сервера с помощью команды:
- После перезагрузки перейдите в раздел Веб → Настройки панели управления TrueConf Server, затем в пункте Внешний адрес веб страницы TrueConf Server убедитесь что внешний адрес имеет вид
https://ip_адрес_сервера.
|
1 |
sudo cp /home/$USER/.acme.sh/server.example.com/cert.pem /opt/trueconf/server/etc/webmanager/ssl/cert.crt |
|
1 |
sudo cp /home/$USER/.acme.sh/server.example.com/privkey.pem /opt/trueconf/server/etc/webmanager/ssl/privkey.key |
|
1 |
sudo systemctl restart trueconf-web |
Также установка сертификата с пояснениями показана в документации сервера.
Установка сертификата на TrueConf MCU
TrueConf MCU поддерживает форматы .crt и .pem для сертификатов безопасности, .key и .pem для ключей, поэтому нет необходимости в переименовании файлов.
- Скопируйте файлы сертификата и ключа:
- файл сертификата:
- файл ключа:
- Перезапустите веб-службу с помощью команды:
|
1 |
sudo cp /home/$USER/.acme.sh/server.example.com/cert.pem /opt/trueconf/mcu/etc/ssl/web/ |
|
1 |
sudo cp /home/$USER/.acme.sh/server.example.com/privkey.pem /opt/trueconf/mcu/etc/ssl/web/ |
|
1 |
sudo systemctl restart tcmcu-webproxy |
Для дополнительных сведений смотрите документацию MCU.
Установка сертификата на TrueConf AI Server
- Скопируйте файлы сертификата и ключа со сменой расширений на поддерживаемые ИИ-сервером:
- файл сертификата с переименованием и сменой расширения с pem на crt:
- файл ключа с переименованием и сменой расширения с pem на key:
- Перезапустите веб-службу ИИ-сервера для применения настроек:
|
1 |
sudo cp /home/$USER/.acme.sh/server.example.com/cert.pem /opt/trueconf/ai-server/etc/manager/ssl/cert.crt |
|
1 |
sudo cp /home/$USER/.acme.sh/server.example.com/privkey.pem /opt/trueconf/ai-server/etc/manager/ssl/privkey.key |
|
1 |
systemctl restart trueconf-ai-manager |
Также настройки ИИ-сервера смотрите в документации.
Настройка автоматического продления сертификата Let’s Encrypt
Для автоматического обновления уже имеющегося сертификата нужно создать задачу в Cron.
Для этого выполните команду в зависимости от решения Труконф:
- TrueConf Server:
- TrueConf MCU:
- TrueConf AI Server:
|
1 |
(crontab -l; echo "0 1 * * 0 /home/$USER/.acme.sh/acme.sh --renew -d trueconf.domain.ru --force --reloadcmd 'cp /home/$USER/.acme.sh/trueconf.domain.ru/cert.pem /opt/trueconf/server/etc/webmanager/ssl/custom.crt && cp /home/$USER/.acme.sh/trueconf.domain.ru/privkey.pem /opt/trueconf/server/etc/webmanager/ssl/custom.key && systemctl restart trueconf-web'") | crontab - |
|
1 |
(crontab -l; echo "0 1 * * 0 /home/$USER/.acme.sh/acme.sh --renew -d trueconf.domain.ru --force --reloadcmd 'cp /home/$USER/.acme.sh/trueconf.domain.ru/cert.pem /opt/trueconf/mcu/etc/ssl/web/custom.crt && cp /home/$USER/.acme.sh/trueconf.domain.ru/privkey.pem /opt/trueconf/mcu/etc/ssl/web/custom.key && systemctl restart tcmcu-webproxy'") | crontab - |
|
1 |
(crontab -l; echo "0 1 * * 0 /home/$USER/.acme.sh/acme.sh --renew -d trueconf.domain.ru --reloadcmd 'cp /home/$USER/.acme.sh/trueconf.domain.ru/cert.pem /opt/trueconf/ai-server/etc/manager/ssl/custom.crt && cp /home/$USER/.acme.sh/trueconf.domain.ru/privkey.pem /opt/trueconf/ai-server/etc/manager/ssl/custom.key && systemctl restart trueconf-ai-manager'") | crontab - |
где (на примере команды для TrueConf Server):
crontab -l— вывод текущих задач, это нужно для сохранения уже имеющихся задач в планировщике;echo— вводит указанную строку в crontab;- как задаётся время (5 символов):
- минута — принимает значение от 0 до 59, * — любая минута;
- час — принимает значение от 0 до 23, * — любой час;
- день месяца — принимает значение от 1 до 31, * — любой день месяца;
- месяц — принимает значение от 1 до 12, * — любой месяц;
- день недели — принимает значение от 0 до 7, * — любой день недели.
/home/$USER/.acme.sh/acme.sh— путь к исполняемому файлу утилиты acme.sh.--renew— команда для обновления сертификата;-d trueconf.domain.ru— доменное имя на которое выписывается сертификат;--reloadcmd— команда, которая будет выполнена после успешного получения нового сертификата;cp /home/$USER/.acme.sh/trueconf.domain.ru/cert.pem /opt/trueconf/server/etc/webmanager/ssl/custom.crt— копирование и переименование файла сертификата в директорию сервера;cp /home/$USER/.acme.sh/trueconf.domain.ru/privkey.pem /opt/trueconf/server/etc/webmanager/ssl/custom.key— копирование и переименование файла приватного ключа в директорию сервера;systemctl restart trueconf-web— перезапуск службы для применения изменений.
В данном примере мы указали 0 1 * * 0, что означает запуск команды раз в неделю. Сертификат действует 90 дней, но мы будем проверять его чаще. Утилита acme.sh самостоятельно определит необходимость обновления сертификатов и команда будет выполнена до истечения срока сертификата.







