Как многие знают, вчера закончился сертификат Let's Encrypt DST Root CA X3, использовавшийся, в том числе и для почтовых серверов Zimbra.

Я прождал до последнего и столкнулся с несколькими проблемами после его истечения, например перестала отправляться почта из системы обработки заявок OTRS и почтового клиента Spark. После некоторой возни было найдено решение по обновлению сертификата с новым корневым CA.

Моя конфигурация - Centos 7.9 и Zimbra 8.8.11

Инструкция по обновлению

Устанавливаем новый certbot

sudo yum install epel-release
sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo snap install core
sudo reboot

После перезагрузки Zimbra отказалась запускаться, сославшись на некорректный сертификат, но на всякий случай, я приведу команды в таком порядке, как будто она работает.

Если вы впервые получаете сертификат, замените 3 строку на это:

certbot certonly --standalone --preferred-chain "ISRG Root X1"

mail.example.com в 6 строке необходимо заменить на доменное имя вашего почтового сервера

letsencryptCA в 7 строке - файл, содержащий новый корневой сертификат. Вы должны создать его сами и скопировать туда этот текст:

-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----

Обратите внимание, что корневой сертификат, в результате команды в 7 строке, добавляется именно в конец полученного вами файла chain.pem

Все команды в этой части выполняются от имени пользователя root:

su - zimbra -c "/opt/zimbra/bin/zmproxyctl stop"
su - zimbra -c "/opt/zimbra/bin/zmmailboxdctl stop"
certbot renew --standalone --force-renewal --preferred-chain "ISRG Root X1"
rm -f /opt/zimbra/ssl/letsencrypt/* 
rm -f /opt/zimbra/ssl/zimbra/commercial/commercial.key 
cp /etc/letsencrypt/live/mail.example.com/* /opt/zimbra/ssl/letsencrypt/
cat letsencryptCA >> /opt/zimbra/ssl/letsencrypt/chain.pem
cp /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
chown zimbra:zimbra /opt/zimbra/ssl/letsencrypt/*
chown zimbra:zimbra /opt/zimbra/ssl/zimbra/commercial/commercial.key
cd /opt/zimbra/ssl/letsencrypt
su zimbra

В этот момент мы переключаемся на пользователя zimbra и выполняем следующее:

zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
zmcertmgr deploycrt comm cert.pem chain.pem
zmcontrol restart

Если всё пройдет без ошибок, то вы получите свежий сертификат и работающую почтовую систему.

Источники информации:

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


  1. Yokushiro
    02.10.2021 15:46
    -1

    У меня почтовый сервер тоже использует Let’s Encrypt. Однако как то странно, что проблем ы проявились только у ЧАСТИ пользователей. при прочих равных условиях (все используют браузер гугл хром и Windows 10). Что предпринять, чтобы их системы тоже начали дружить с обновленным сертификатом?


  1. SerjV
    02.10.2021 19:08
    +3

    Моя конфигурация - Centos 7.9 и Zimbra 8.8.11

    После перезагрузки Zimbra отказалась запускаться

    Если всё пройдет без ошибок

    Так у вас в итоге получилось или не получилось описанным образом чего-то добиться?

    Не говоря уж о том, что стюардессу 8.8.11 надо было закопать еще в 2019г, и иметь 8.8.15. И вот если будут проблемы с 8.8.15 - то уже тогда думать, что же тут не так (потому что все версии ниже указанной больше на данный момент не поддерживаются, а для этой было обновление openssl, добавившее в т.ч. поддержку TLS 1.3, ну и обновление версии решает заодно проблемы с сертификатами, описанными в https://habr.com/ru/post/580092/).

    И не говоря уж о том, что по идее есть готовый скрипт для автоматического (по расписанию) и/или автоматизированного ("принудительно" вручную) обновления сертификата у Зимбры сингл-сервера, который сам собирает для зимбровского хранилища сертификатов бандл из собственно сертификата и цепочки промежуточных. Не руками же каждые три месяца сертификат для Зимбры обновлять?

    Собственно, вы тут и пытаетесь проделать "закат солнца вручную", сделав работу скрипта руками... Может стоило подробнее пояснить - зачем, и что конкретно сломалось?


  1. swatkiev
    02.10.2021 19:16

    Вчера специально под это дело написал скриптец для установки и продления сертификата)

    https://github.com/swatkiev/Let-s-Encrypt-Zimbra-SSL-script


  1. scruff
    03.10.2021 19:40

    Подскажите новичку готовый скрипт для разворачивания Zimbra. Спасибо


    1. swatkiev
      03.10.2021 21:43

      Можете воспользоваться этим мануалом или скопируйте все команды со статьи и создайте свой скрипт на bash для разворачивания зимбра:

      https://infoit.com.ua/linux/kak-ustanovit-zimbra-collaboration-na-ubuntu-18-04-lts/


    1. SerjV
      03.10.2021 21:52

      А сейчас есть смысл ставить Zimbra? Ну кроме как для апгрейда уже существующих систем?

      Примечание: если речь идёт об опенсорсной Зимбре, конечно. Платную-то ставить ничто не мешает, её продолжают поддерживать и развивать и дальше. В то время как бесплатная превращается в тыкву в декабре 2023г.


      1. AcidVenom
        03.10.2021 23:21

        превращается в тыкву в декабре 2023г

        К тому моменту выйдет следующая версия. Либо продлят поддержку 9 версии.


        1. SerjV
          04.10.2021 00:08

          Выйти-то безусловно выйдет. Вот только Синакор больше не делает опенсорную Зимбру, и лишь доводит до конца поддержку 8.8.15.

          Причём девятая Зимбра кончается в один день с восьмой, что забавно. Так что учитывая, что Синакор еще и обновления для опенсорсной девятки перестал делать, то ставить (альтернативную от Зекстрас) сборку девятки еще меньше смысла, чем восьмёрку.


          1. scruff
            04.10.2021 06:49

            Что-то мне зимбра теперь напоминает Axigen. Тот тоже был бесплатный сперва на 10 юзеров, потом на 5, потом вообще зарубили. Останусь-ка я на старом добром iredmail+roundcube. Там в бесплатной версии кол-во юзеров анлимно, функционал со стороны админа только немного страдает.


            1. SerjV
              04.10.2021 11:20
              +1

              Формально Зимбра осталась опенсорсной... Но с т.з. Синакора - "Опенсорс - это когда вам доступны сорсы, и они - доступны! А вот собирать дистрибутивы и обновления для них из этих сорсов мы вам уже не обещали".

              Вообще всё началось с выходом 9-й версии Зимбры - Синакор сказал, что для опенсорсной больше делать не будет дистрибутивы, только делать свою платную (но сорсы доступны, кроме некоторых фич типа нового вебклиента - в девятке оставили только старый, заодно выкинув оттуда вебклиент для мобильных устройств (не очень понятно зачем) и html-клиент (эту древность - понятно, что давно можно выкинуть)). После чего Зекстрас (и по-моему только он сделал, хотя вроде еще кто-то пытался) сделал свою сборку дистрибутива Зимбры из оригинальных сорсов, и она даже некоторое время обновлялась - потому что репозитории пакетного менеджера привязаны с серверам Синакора. А летом Синакор перестал собирать бинарные обновления для Зимбры... И судя по отзывам - альтернативным путём их собираться не получается, можно только пересобирать дистрибутив и делать переустановку типа "апгрейд на ту же версию". Собственно, Зекстрас сделал новую сборку своего дистрибутива девятки с обновлениями... Правда, как-то слегка втихоря.

              И вот теперь в итоге как-то непонятно с Зимброй - то ли "хватит изврата, пока закопать стюардессу", дотянув имеющиеся инсталляции до конца 2023г, то ли надеяться, что кто-то сделает нормальную сборку Зимбры с обновлениями.


            1. SerjV
              04.10.2021 16:58

              p.s. Вообще у Зекстраса на хабре блог есть https://habr.com/ru/company/zimbra/profile/ , и даже вон статью сегодня выкатили, типа живые мол...

              Так что если есть желание поинтересоваться судьбой стюардессы (то ли закопают, то ли наоборот откопают) - можно у них спросить. Кроме них и Синакора вряд ли кто лучше представляет будущее Зимбры.


  1. Dee3
    07.10.2021 22:46

    Надеюсь, системы уровня "Dead Hand" тестировались лучше чем фейсбуки.