В этой статье мы ответим на довольно частый вопрос наших пользователей: как заменить или обновить (продлить) SSL сертификат для веб-сервера NGINX, используемого в системе 3CX.

Прежде всего, рассмотрим, для чего может потребоваться получение, замена или обновление сертификата:

  • Вы используете собственное имя домена для 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

Вы должны видеть 3 файла, как показано на скриншоте ниже.



Внимание: если вы видите 5 файлов, значит используются FQDN и сертификат от 3CX. В этом случае ничего менять не нужно!

Перезапишите имеющиеся файлы вашими файлами. После этого перезапустите сервис NGINX. В системе Windows он называется 3CXPhoneSystem Nginx Server.
Теперь, зайдя в интерфейс 3CX, вы можете посмотреть параметры нового сертификата.



Как видим, сертификат действителен в течении 3 месяцев. Имейте это ввиду, чтобы не забыть вовремя его продлить!

Комментарии (4)


  1. nmk2002
    18.09.2017 17:46

    Генерировать CSR и закрытый ключ рекомендую на своей стороне, а не доверять это внешнему сервису. Делается это одной командой в openssl.


    1. snezhko Автор
      19.09.2017 00:05

      Спасибо. Я использовал самый простой способ, но не факт, что самый лучший.


  1. bekreyev
    19.09.2017 14:05

    Главный плюс Let's Encrypt в возможности автоматического обновления, а Вы руками предлагаете продлевать.


    1. snezhko Автор
      19.09.2017 14:09

      Все верно вы говорите, так оно и работает, если у вас активна подписка на обновления 3CX. А если уже неактивна — нужно либо вручную, либо скриптом. Но я думаю, что те, кто умеет скриптом, и сами разберутся :-) habrahabr.ru/post/318952 Эта статья расчитана на начинающих админов, поскольку много подобных вопросов возникает.