Создание сертификата «Let’s Encrypt» на Windows
Криптографические сертификаты служат цифровым аналогом удостоверения сайта, что позволяет шифровать подключения с использованием протокола TLS и тем самым обеспечивать безопасное соединение между сервером и клиентом.
Существуют как платные, так и бесплатные центры сертификации. Одним из бесплатных центров является Let’s Encrypt, который выдаёт сертификаты сроком на 90 дней с возможностью продления в автоматическом режиме.
Для пользователей TrueConf Server наличие TLS сертификата необходимо для:
- участия в конференциях через WebRTC-приложение в браузерах;
- входа в личный кабинет;
- возможности планировать конференции через приложение;
- отображения в приложении разделов опросов и стенограмм;
- синхронизации TrueConf Server с Active Directory.
Помимо TrueConf Server имеются другие решения Труконф, которые могут потребовать установки TLS-сертификата. Т.к. они устанавливаются только на Linux, то читайте описание работы с ними в отдельной статье.
Шаг 1: Подготовка
Предварительно необходимо остановить веб-службу TrueConf Server, для этого в командной строке выполните команду:
|
1 |
sc stop TrueConfWebManager |
Для создания TLS сертификата на Windows скачайте программу simple-acme. Далее следуйте инструкции:
- Распакуйте скачанный архив в удобную для вас папку, например в C:\simple-acme.
- В этой же папке создайте каталог crt.
- В брандмауэре Windows откройте Дополнительные параметры → Правила для входящих подключений → Создать правило → Для порта, в поле Определённые локальные порты впишите через запятую порты 80 и 443 и нажмите Далее. Затем выберите пункт Разрешить подключение, снова нажмите Далее, укажите для каких профилей будет применяться правило (по умолчанию для всех) и после нажатия кнопки Далее сохраните правило под любым именем.
Шаг 2: Создание сертификата
Откройте командную строку от имени администратора и запустите утилиту с помощью команды:
|
1 |
C:\simple-acme\wacs.exe |
Далее поочерёдно выполните следующие команды, вводя в терминале буквы или цифры, соответствующие нужным пунктам. Например, для выполнения команды Create certificate (full options) надо будет ввести m и нажать Enter:
- Начните создавать сертификат с ручным указанием параметров, для чего выберите Create certificate (full options), затем Manually enter host names.
- Укажите ваше доменное имя и два раза нажмите Enter для подтверждения.
- При желании вы можете создать отдельные сертификаты для поддоменов или хостов. В нашем примере выберем Single certificate.
- Затем выберите:
- [http] Let simple-acme answer HTTP validation request;
- Generate an RSA public/private key pair;
- Create PEM encoded files (for Apache, nginx, etc.);
- Укажите папку для сохранения сертификатов, например, C:\simple-acme\crt.
- Вам будет предложено установить пароль для приватного ключа, выберите None;
- После этого выберите:
- No (additional) store steps;
- No (additional) installation steps.
- В следующем пункте выберите classic: https://letsencrypt.org/docs/profiles#classic
- На дополнительные вопросы отвечайте следующим образом:
- на вопрос Open in default application? введите n;
- на вопрос Do you agree with terms? введите y.
- Укажите адрес электронной почты для уведомлений об ошибках.
После этого при удачном создании сертификата вы увидите надпись Authorization result: valid. На вопрос Do you want to specify the user the task will run as? введите n.
Если для указанного доменного имени ранее уже генерировался сертификат, вы увидите соответствующее сообщение в строке Existing renewal с указанием даты окончания действия. Вы можете создать его заново, указав y в ответ на вопрос Overwrite settings?.
В папке C:\simple-acme\crt сгенерируются 3 файла:
- имя_домена-crt.pem — сам сертификат;
- имя_домена-key.key — файл ключа;
- имя_домена-chain.pem — цепочка доверия, включает корневой и промежуточный сертификаты Let’s Encrypt.
Теперь вы можете использовать их в TrueConf Server, как показано в нашей статье.
Шаг 3: Настройка автообновления сертификатов
После успешного получения сертификата утилита simple-acme автоматически добавляет задачу на проверку сертификата в системный планировщик задач Windows. Нужно обязательно отредактировать эту задачу чтобы после обновления сертификата файлы копировались в директорию TrueConf Server. Также можно добавить автоматический перезапуск веб-службы TrueConf Server после обновления сертификата. По умолчанию вам самим вручную надо будет перезапустить службу после обновления сертификата.
Нажмите Win + R и введите taskschd.msc, нажмите Enter. В открывшемся окне перейдите в пункт Библиотека планировщика заданий.
Для редактирования автоматически созданной задачи:
- В главном окне найдите задачу simple-acme-renew.
- В боковом меню справа нажмите Свойства.
- Обязательно создайте действие для копирования файлов сертификата в директорию TrueConf Server:
- Перейдите во вкладку Действие и нажмите Создать.
- В выпадающем списке выберите Запуск программы, затем настройте параметры:
- В поле Программа или сценарий введите
Powershell.exe. - В поле Добавить аргументы введите:
-NoProfile— запрет на загрузку профилей PowerShell, нужно для большей стабильности выполнения команды;-WindowStyle Hidden— запуск PowerShell в скрытом окне;-Command— команда для PowerShell, внутри кавычек можно перечислять несколько команд, разделяя их точкой с запятой;Copy-Item -Force C:\simple-acme\crt\cert.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.crt'— копирование и переименование файла сертификата в директорию сервера;Copy-Item -Force C:\simple-acme\crt\privkey.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.key'— копирование и переименование файла приватного ключа в директорию сервера.- Затем нажмите ОК.
- При необходимости измените:
- Описание во вкладке Общие.
- Время и частоту срабатывания во вкладке Триггеры.
- Другие параметры в оставшихся вкладках.
|
1 |
-NoProfile -WindowStyle Hidden -Command “Copy-Item -Force C:\simple-acme\crt\cert.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.crt'; Copy-Item -Force C:\simple-acme\crt\privkey.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.key'” |
где:
Если этого по какой-либо причине задача на обновление сертификата не создалась вы можете сделать это вручную, для этого:
- В боковом меню справа нажмите Создать простую задачу.
- Заполните поля в открывшемся окне: Имя, например, simple-acme-renew. Добавьте Описание если необходимо, нажмите Далее.
- В пункте Триггер выберите вариант ежедневно и перейдите в следующий пункт.
- Перейдя в пункт Действие выберите вариант Запустить программу, затем настройте параметры:
- В поле Программа или сценарий введите директорию к исполняемому файлу утилиты, например
C:\simple-acme\wacs.exe. - В поле Добавить аргументы введите:
--renew— запуск процесса обновления для всех задач, у которых подходит срок;--baseuri— указание simple-acme какой сервер использовать;“https://acme-v02.api.letsencrypt.org/”— основной рабочий сервер Let’s Encrypt.- В пункте Завершение проверьте настроенную задачу и нажмите Готово.
|
1 |
--renew --baseuri “https://acme-v02.api.letsencrypt.org/” |
где:
В дополнение к этому добавьте действие на копирование файлов сертификата в директорию TrueConf Server:
- Выберите задачу simple-acme-renew, нажмите на Свойства на боковой панели справа.
- Перейдите во вкладку Действие и нажмите Создать.
- В выпадающем списке выберите Запуск программы, затем настройте параметры:
- В поле Программа или сценарий введите
Powershell.exe. - В поле Добавить аргументы введите:
-NoProfile— запрет на загрузку профилей PowerShell, нужно для большей стабильности выполнения команды;-WindowStyle Hidden— запуск PowerShell в скрытом окне;-Command— команда для PowerShell, внутри кавычек можно перечислять несколько команд, разделяя их точкой с запятой;Copy-Item -Force C:\simple-acme\crt\cert.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.crt'— копирование и переименование файла сертификата в директорию сервера;Copy-Item -Force C:\simple-acme\crt\privkey.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.key'— копирование и переименование файла приватного ключа в директорию сервера.- Затем нажмите ОК.
|
1 |
-NoProfile -WindowStyle Hidden -Command “Copy-Item -Force C:\simple-acme\crt\cert.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.crt'; Copy-Item -Force C:\simple-acme\crt\privkey.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.key'” |
где:
Можно добавить удобства дополнив в аргументы задачи команду на перезапуск службы TrueConfWebManager Restart-Service TrueConfWebManager, рекомендуем выбрать для этого время когда сервер почти не используется :
- В главном окне найдите задачу simple-acme-renew.
- В боковом меню справа нажмите Свойства.
- Перейдите во вкладку Действие, выберите созданное ранее действие и нажмите Изменить.
- В поле Добавить аргументы введите:
-NoProfile— запрет на загрузку профилей PowerShell, нужно для большей стабильности выполнения команды;-WindowStyle Hidden— запуск PowerShell в скрытом окне;-Command— команда для PowerShell, внутри кавычек можно перечислять несколько команд, разделяя их точкой с запятой;Copy-Item -Force C:\simple-acme\crt\cert.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.crt'— копирование и переименование файла сертификата в директорию сервера;Copy-Item -Force C:\simple-acme\crt\privkey.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.key'— копирование и переименование файла приватного ключа в директорию сервера;Restart-Service TrueConfWebManager— перезапуск службы для применения изменений.- Затем нажмите ОК.
|
1 |
-NoProfile -WindowStyle Hidden -Command “Copy-Item -Force C:\simple-acme\crt\cert.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.crt'; Copy-Item -Force C:\simple-acme\crt\privkey.pem 'C:\Program Files\TrueConf Server\httpconf\ssl\custom.key'; Restart-Service TrueConfWebManager” |
где:











