В этой статье мы ответим на довольно частый вопрос наших пользователей: как заменить или обновить (продлить) SSL сертификат для веб-сервера NGINX, используемого в системе 3CX.
Прежде всего, рассмотрим, для чего может потребоваться получение, замена или обновление сертификата:
В статье мы не будем рассматривать ситуацию замены FQDN — она описана ранее здесь и предусматривает переустановку 3CX. Мы рассмотрим саму процедуру получения сертификата и установки его на уже работающий сервер. Т.е., предполагается, что FQDN сервера не изменяется, и все, что нужно сделать — обновить сертификат.
Получить доверенный сертификат Let’s Encrypt можно разными способами, в том числе и автоматически. Однако мы рассмотрим только получение вручную через сервис https://zerossl.com. Конечно, вы можете приобрести платный сертификат у выбранного поставщика, но сертификаты Let’s Encrypt бесплатны и используются многими производителями ПО и оборудования, в том числе, компанией 3CX (генерируются и выдаются вам автоматически при действующей подписке на обновления).
Зайдите на https://zerossl.com и перейдите в Online Tools — Zero SSL Certificate Wizard.
Укажите FQDN сервера, для которого будет сгенерирован сертификат, выберите DNS verification, примите условия сервиса и нажмите Next. Опционально можно указать свой e-mail. Будет сгенерирован запрос на сертификат. Затем нажмите Next еще раз, и будет сгенерирован секретный ключ. Скачайте файлы CSR и Account Key (они вам пригодятся в будущем).
Далее необходимо пройти DNS верификацию, т.е. подтвердить, что выбранный FQDN сервера принадлежит именно вам. Для этого на вашем DNS сервере (часто это делается у хостинг-провайдера) добавьте указанную TXT запись и подождите некоторое время, чтобы прошло обновление DNS кэша.
Ваш сертификат готов. Скачайте его и секретный ключ на компьютер и переименуйте их по такой схеме:
Имея файлы сертификатов, приступим к их установке.
Если вы устанавливаете новую систему, то на соответствующем этапе Мастера первоначальной настройки просто укажите сертификат и ключ.
Если сервер уже установлен и работает, зайдите на него и перейдите в папку:
Внимание: если вы видите 5 файлов, значит используются FQDN и сертификат от 3CX. В этом случае ничего менять не нужно!
Перезапишите имеющиеся файлы вашими файлами. После этого перезапустите сервис NGINX. В системе Windows он называется 3CXPhoneSystem Nginx Server.
Теперь, зайдя в интерфейс 3CX, вы можете посмотреть параметры нового сертификата.
Как видим, сертификат действителен в течении 3 месяцев. Имейте это ввиду, чтобы не забыть вовремя его продлить!
Прежде всего, рассмотрим, для чего может потребоваться получение, замена или обновление сертификата:
- Вы используете собственное имя домена для 3CX (вида pbx.mybusiness.com). 3CX версии 15 и выше требуют обязательного наличия доверенного (подписанного) SSL сертификата.
- Вы решили перейти с FQDN, выданного 3CX (вида mybusiness.3cx.eu), на собственное доменное имя.
- Вы обновляете систему с предыдущих версий 3CX и должны использовать доверенный сертификат (в 3CX 15 и выше допустимы только доверенные сертификаты).
- Вы решили отказаться от подписки на обновления 3CX (Maintenance). Мы не рекомендуем отказываться от обновлений, т.к. это может повлиять на качество функционирования вашего бизнеса (и экономия может привести к гораздо большим потерям). Однако, в этом случае вам необходимо перевести 3CX на собственное доменное имя, т.к. без подписки на обновления прекращается поддержка FQDN и SSL сертификата от 3CX.
В статье мы не будем рассматривать ситуацию замены FQDN — она описана ранее здесь и предусматривает переустановку 3CX. Мы рассмотрим саму процедуру получения сертификата и установки его на уже работающий сервер. Т.е., предполагается, что FQDN сервера не изменяется, и все, что нужно сделать — обновить сертификат.
Получение сертификата Let’s Encrypt
Получить доверенный сертификат Let’s Encrypt можно разными способами, в том числе и автоматически. Однако мы рассмотрим только получение вручную через сервис https://zerossl.com. Конечно, вы можете приобрести платный сертификат у выбранного поставщика, но сертификаты Let’s Encrypt бесплатны и используются многими производителями ПО и оборудования, в том числе, компанией 3CX (генерируются и выдаются вам автоматически при действующей подписке на обновления).
Зайдите на https://zerossl.com и перейдите в Online Tools — Zero SSL Certificate Wizard.
Укажите FQDN сервера, для которого будет сгенерирован сертификат, выберите DNS verification, примите условия сервиса и нажмите Next. Опционально можно указать свой e-mail. Будет сгенерирован запрос на сертификат. Затем нажмите Next еще раз, и будет сгенерирован секретный ключ. Скачайте файлы CSR и Account Key (они вам пригодятся в будущем).
Далее необходимо пройти DNS верификацию, т.е. подтвердить, что выбранный FQDN сервера принадлежит именно вам. Для этого на вашем DNS сервере (часто это делается у хостинг-провайдера) добавьте указанную TXT запись и подождите некоторое время, чтобы прошло обновление DNS кэша.
Ваш сертификат готов. Скачайте его и секретный ключ на компьютер и переименуйте их по такой схеме:
- domain-key.txt > pbx.mybusiness.com-key.pem
- domain-crt.txt > pbx.mybusiness.com-crt.pem, где pbx.mybusiness.com — FQDN имя сервера 3CX, указанное в мастере генерации сертификата.
Имея файлы сертификатов, приступим к их установке.
Установка сертификата на сервер 3CX
Если вы устанавливаете новую систему, то на соответствующем этапе Мастера первоначальной настройки просто укажите сертификат и ключ.
Если сервер уже установлен и работает, зайдите на него и перейдите в папку:
- Windows: C:\Program Files\3CX Phone System\Bin\nginx\conf\instance1
Linux: /var/lib/3cxpbx/Bin/nginx/conf/Instance1
Внимание: если вы видите 5 файлов, значит используются FQDN и сертификат от 3CX. В этом случае ничего менять не нужно!
Перезапишите имеющиеся файлы вашими файлами. После этого перезапустите сервис NGINX. В системе Windows он называется 3CXPhoneSystem Nginx Server.
Теперь, зайдя в интерфейс 3CX, вы можете посмотреть параметры нового сертификата.
Как видим, сертификат действителен в течении 3 месяцев. Имейте это ввиду, чтобы не забыть вовремя его продлить!