Установка ssl сертификата zimbra 8.6

Установка ssl сертификата zimbra 8.6

Добрый день уважаемые читатели, у меня есть виртуальный сервер с установленным на него CentOS 7, на данном сервере работает почтовый сервер zimbra 8.6, досталась по наследству. Сегодня сотрудник обнаружил такую вещь, что при обращении на веб-консоль управления почтовым сервером и просто в личном кабинете учетной записи, выскакивает надпись с угрозой безопасности, что ваше соединение не защищено и сертификат не валиден. Дойдя до работы, я действительно увидел, что истек сертификат почты, для меня было странно, что у других веб ресурсов, был сертификат на домен, и он заканчивался в мае, а сюда почему, то поставили сертификат от startssl. Давайте я покажу как перевыпустить данный сертификат и вернуть почте защищенное подключение.

Вот как в браузере выглядит сообщение, что ваше подключение не защищено, хорошо, что можно проигнорировать данное сообщение и работать дальше.

Установка ssl сертификата zimbra 8.6-1

Посмотрев сертификат безопасности, я увидел, что срок закончился 5 марта 2017 и выдан он был на конкретный адрес 3 уровня, о том, какие бывают сертификаты, читайте по ссылке слева.

Установка ssl сертификата zimbra 8.6-2

Расположение сертификата

В zimbra, сам сертификат (закрытый ключ) должен лежать по пути /opt/zimbra/ssl/zimbra/commercial/commercial.key. Я для удобства, сюда же положил и открытый ключ и ключ цепочки.

Установка ssl сертификата zimbra 8.6-3

Чтобы проверить цепочку, выполните команду:

/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /opt/zimbra/ssl/zimbra/commercial/commercial.crt /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

В моем случае я получил ошибку, что сертификат истек.


** Verifying /opt/zimbra/ssl/zimbra/commercial/commercial.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Certificate (/opt/zimbra/ssl/zimbra/commercial/commercial.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
XXXXX ERROR: Invalid Certificate: /opt/zimbra/ssl/zimbra/commercial/commercial.crt: CN = имя сервера
error 10 at 0 depth lookup:certificate has expired

Установка ssl сертификата zimbra 8.6-4

Запрашиваем новый сертификат Zimbra

С проблемой мы определились, осталось перевыпустить сертификат для почтового сервера. На выбор у нас два варианты:

  • Бесплатный выпуск сертификата от startssl.com
  • Платный от других известных центров сертификации.

Мне в данном случае подойдет первый вариант, и я хочу сгенерировать сертификат на 3 года, делают startssl.com. Не важно, какой методы выберите вы, от вас потребуется в любом случае сделать CSR (Certificate Signing Request) запрос с вашего почтового сервера, нужен он для получения сертификата, иначе никак.

Генерация CSR запроса в Zimbra

Для генерации Certificate Signing Request у нас два варианта, первый это через консоль, второй это через веб интерфейс, я вам настоятельно рекомендую уметь оба варианта.

  • Через консоль - подключаемся по ssh к вашему серверу и вводив вот такую команду
    /opt/zimbra/bin/zmcertmgr createcsr comm -new “/C=UA/ST=Kiev/L=Kiev/O=Company Inc/OU=Department/CN=your.domain.com”
    Если пробежаться по полям, то ключевыми будет CN (Common Name) - это имя вашего ресурса, пишем тут нужный адрес. O - название компании, ST - область, L - город, С - название страны, у меня это RU.
    В результате вы получите вот такой текст:
    ** Generating a server csr for download comm -new “/C=RU/ST=Moscow/L=Moscow/O=ANO Association for the Protection of Information of the rights of investors/OU=Department/CN=ваш доменu”
    ** Creating /opt/zimbra/conf/zmssl.cnf...done
    ** Backup /opt/zimbra/ssl/zimbra to /opt/zimbra/ssl/zimbra.20170306123552
    ** Creating /opt/zimbra/conf/zmssl.cnf...done
    ** Creating server cert request /opt/zimbra/ssl/zimbra/commercial/commercial.csr....Generating a 2048 bit RSA private key
    ........+++
    ......................................................................................+++
    writing new private key to '/opt/zimbra/ssl/zimbra/commercial/commercial.key'
    -----
    Subject does not start with '/'.
    problems making Certificate Request** Saving server config key zimbraSSLPrivateKey...done.генерация csr запроса zimbra 8.6-2
    По сути у вас создастся файл /opt/zimbra/ssl/zimbra/commercial/commercial.key, его содержимое приблизительно вот такое и сам commercial.csr.генерация csr запроса zimbra 8.6-3

Если вы получили ошибку Subject does not start with '/'. problems making Certificate Request, то попробуйте вот такую команду:

/opt/zimbra/bin/zmcertmgr createcsr comm -new -subject "/C=RU/ST=Moscow/L=Moscow/O=ANO AZIPI/OU=Department/CN=ваш домен" -subjectAltNames ваш домен

** Generating a server csr for download comm -new -subject /C=RU/ST=Moscow/L=Moscow/O=ANO AZIPI/OU=Department/CN=ваш домен -subjectAltNames ваш домен
** Creating /opt/zimbra/conf/zmssl.cnf...done
** Backup /opt/zimbra/ssl/zimbra to /opt/zimbra/ssl/zimbra.20170306132936
** Creating /opt/zimbra/conf/zmssl.cnf...done
** Creating server cert request /opt/zimbra/ssl/zimbra/commercial/commercial.csr...done.
** Saving server config key zimbraSSLPrivateKey...done.

  • Через веб интерфейс - для кого то окажется более простым методом по генерации CSR запроса в Zambra. Переходим в Настройка > Сертификаты

генерация csr запроса zimbra 8.6-4

Выбираем имя вашего сервера.

генерация csr запроса zimbra 8.6-5

Заполняем нужные поля.

генерация csr запроса zimbra 8.6-6

Скачиваем файл CSR запроса.

генерация csr запроса zimbra 8.6-7

Перед отправкой, я обычно проверяю CSR запрос, например по этой ссылке (https://www.emaro-ssl.ru/tools/check_csr.php), просто декодер, в него вставляете содержимое CSR и нажимаете проверить.

генерация csr запроса zimbra 8.6-8

Сертификат от startssl.com

Все CSR мы с вами получили, теперь давайте генерировать сертификат для Zimbra. Открываем startssl.com, вам потребуется зарегистрироваться на данном сервисе. Выбираем бесплатный SSL.

Установка ssl сертификата zimbra 8.6-5

Далее потребуется проверка вашего домена, будет проверенно, принадлежит ли он вам.

Установка ssl сертификата zimbra 8.6-6

Вводим ваш домен.

Установка ssl сертификата zimbra 8.6-7

Для валидации, будет использолваться проверка по почте, учтите, что предлагаемая вам почта должна быть создана на вашем сервере.

Установка ssl сертификата zimbra 8.6-8

Вот такое приходит письмо с кодом валидации.

Установка ssl сертификата zimbra 8.6-9

Вводим Verification code и жмем Validation.

Установка ssl сертификата zimbra 8.6-10

Все, как видите валидация вашего домена, успешна пройдена.

Установка ssl сертификата zimbra 8.6-11

В итоге ваш проверенный домен появится в списке Domain Validations.

Установка ssl сертификата zimbra 8.6-12

Далее идете в Certificates Wizard и нажимаете DV SSL Certificate.

Установка ssl сертификата zimbra 8.6-13

Чуть ниже вставляете ваш CSR запрос, созданный ранее.

Установка ssl сертификата zimbra 8.6-14

Видим, что все отлично и сертификат сгеренирован, жмем Certificate List.

Установка ssl сертификата zimbra 8.6-15

Вас перебросит на список ваших сертификатов, скачиваем нужный.

Установка ssl сертификата zimbra 8.6-16

Далее устанавливаем наш сертификат. Распакуйте архив, в нем вы увидите 4 архива. В моем случае меня интересует OtherServer.

Установка ssl сертификата zimbra 8.6-15

Распакуйте архив OtherServe, в итоге вы получите 3 файла, рутовый сертификат, сертификат издающего центра сертификации и сам сертификат на сервер.

Установка ssl сертификата zimbra 8.6-16

Далее я с помощью WinSCP подключился по ssh и скопировал сертификаты в папку /home/cert/. Далее выполняем команды, по объединению файлов

cat root.crt 1_Intermediate.crt > ca_bundle.crt

И копируем его в /opt/zimbra/ssl/zimbra/commercial/

cp ca_bundle.crt /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

Теперь проверим цепочку.

/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /home/cert/2_ваш_сертификат.crt /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

Результат должен быть такой:

[info]** Verifying 2_ваш_сертификат.crt against commercial.key
Certificate (2_ваш_сертификат.crt) and private key (commercial.key) match.
Valid Certificate: 2_ваш_сертификат.crt: OK[/info]

Далее устанавливаем сертификат и цепочку

/opt/zimbra/bin/zmcertmgr deploycrt comm 2_ваш_сертификат.crt ca_bundle.crt

Будет вот такой вывод

[info]/opt/zimbra/bin/zmcertmgr deploycrt comm 2_ваш_сертификат.crt.crt ca_bundle.crt
** Verifying 2_ваш_сертификат.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Certificate (2_ваш_сертификат.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
Valid Certificate: 2_ваш_сертификат.crt: OK
** Copying 2_ваш_сертификат.crt to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
** Appending ca chain ca_bundle.crt to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt to CACERTS as zcs-user-commercial_ca...done.
** NOTE: mailboxd must be restarted in order to use the imported certificate.
** Saving server config key zimbraSSLCertificate...done.
** Saving server config key zimbraSSLPrivateKey...done.
** Installing mta certificate and key...done.
** Installing slapd certificate and key...done.
** Installing proxy certificate and key...done.
** Creating pkcs12 file /opt/zimbra/ssl/zimbra/jetty.pkcs12...done.
** Creating keystore file /opt/zimbra/mailboxd/etc/keystore...done.
** Installing CA to /opt/zimbra/conf/ca...done.[/info]

В итоге у вас /opt/zimbra/ssl/zimbra/commercial создастся файл commercial.crt Далее проверяем цепочки

/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /opt/zimbra/ssl/zimbra/commercial/commercial.crt /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

Должны получить match.

Все перезапускаем почтовый сервер.

su - zimbra -c "zmcontrol stop ; zmcontrol start"

Установка ssl сертификата zimbra 8.6-17

Все проверяем нашу веб морду.

Установка ssl сертификата zimbra 8.6-18

Google и startssl

В виду последних событий, у Google есть претензии к WoSign и StartCom, и все сертификаты выпущенные после 21 октября 2016 года, в браузере Google Chrome 56 версии, все равно помечаются как небезопасные с пометкой NET::ERR_CERT_AUTHORITY_INVALID. Так, что советую присмотреться к проекту Let's Encrypt, одним из спонсоров, которого является Google.

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *