- Генерация нового сертификата
- Импорт сертификата zimbra с помощью групповых политик (gpo)
- Интерфейс командной строки
- Консоль администратора
- Обновление ssl сертификата let’s encrypt в zimbra 8
- Проверка сертификатов
- Установка ssl сертификата на сервер zimbra —
- Установка сертификатов
- Экспорт и установка сертификата zimbra.
Генерация нового сертификата
Генерируем сертификат, можно добавить домен с www, если он не настроен, то его можно не генерировать:
Импорт сертификата zimbra с помощью групповых политик (gpo)
Выше мы рассмотрели как установить сертификат на единичную машину, а если машин не один десяток, то удобней и логичней будет импортировать сертификаты на клиентские машины посредством групповых политик (GPO). Один раз настроив политику можно больше не беспокоится о наличии у пользователей необходимых сертификатов. Создавать групповую политику мы будем на примере Windows Server 2021 R2.
Открываем оснастку Group Policy Management (Управление групповой политикой), создаем новую политику ZimbraCertificate.
Теперь щелкнем на политику правой кнопкой мыши и выберем Edit… (Изменить).
В открывшемся редакторе групповых политик последовательно разворачиваем Computer Configuration (Конфигурация компьютера) — Policies (Политики) — Windows Settings (Конфигурация Windows) — Security Settings (Параметры безопасности)
— Public Key Policies (Политики открытого ключа) — Trusted Root Certification Authorities (Доверенные корневые центры сертификации). В правой части окна в меню правой кнопкой мыши выбираем Import… (Импорт) и импортируем сертификат.
Нажимаем Browse… (Обзор) и выбираем сертификат который будем импортировать. Нажимаем Next.
Оставляем выбор без изменений, нажимаем Next.
Жмем Finish для завершения добавления сертификата.
Видим что сертификат успешно добавлен в политику, теперь он будет автоматически импортироваться всем пользователям на которых распространяется данная политика.
Проверим, сделаем LogOff/LogOn машины на которую применяется данная политика и посмотрим импортировался ли сертификат. Как видим сертификат успешно импортировался.
На это все, мы разобрали как экспортировать и импортировать сертификат Zimbra.
Интерфейс командной строки
Pro-совет: Будьте уверены, что вы замените your_domain_tld.crt и your_domain_tld.ca-bundle с фактическими именами файлов, которые соответствуют вашему заказу:
Консоль администратора
Pro совет: Если вы используете консоль администратора Zimbra для установки сертификата, загрузите и извлеките комплект сертификатов «Другие платформы» вашего SSL-сертификата. Этот комплект содержит файлы сертификатов компонентов, которые можно индивидуально установить с помощью графического интерфейса.
- В разделе администрирования Zimbra перейдите на Главная> Настроить> Сертификаты и нажмите Установить сертификат.
- Выберите целевой сервер, на котором будет установлен сертификат SSL; Выбрать следующий.
- Выберите опцию «Установите коммерческий подписанный сертификат«; щелкнуть следующий.
- Обзор CSR Информация; щелчок следующий когда готово.
- Добавьте файлы следующим образом:
- Выберите Установить кнопка после завершения; сертификат будет установлен.
- Перезапустите Zimbra из интерфейса командной строки:
zmcontrol перезапуск
- Это оно! Теперь вы можете вернуться в консоль администратора и просмотреть установленный сертификат.
Обновление ssl сертификата let’s encrypt в zimbra 8
Как многие знают, вчера закончился сертификат 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Если всё пройдет без ошибок, то вы получите свежий сертификат и работающую почтовую систему.
Источники информации:
Проверка сертификатов
После того как мы получили сертификаты, необходимо их проверить с помощью сервера Zimbra.Для этого создадим папку letsencrypt и скопируем туда полученные сертификаты:mkdir /opt/zimbra/ssl/letsencryptcp /etc/letsencrypt/live/test.my.domain/* /opt/zimbra/ssl/letsencrypt/
Назначим права на эти файлы для пользователя zimbra и проведем верификацию:chown -Rfv zimbra:zimbra /opt/zimbra/ssl/letsencrypt/sudo su – zimbra -c “zmcertmgr verifycrt comm /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/letsencrypt/cert.pem /opt/zimbra/ssl/letsencrypt/zimbra_chain.pem”** Verifying ‘/opt/zimbra/ssl/letsencrypt/cert.pem’ against ‘/opt/zimbra/ssl/letsencrypt/privkey.
pem’Certificate ‘/opt/zimbra/ssl/letsencrypt/cert.pem’ and private key ‘/opt/zimbra/ssl/letsencrypt/privkey.pem’ match.** Verifying ‘/opt/zimbra/ssl/letsencrypt/cert.pem’ against ‘/opt/zimbra/ssl/letsencrypt/zimbra_chain.pem’Valid certificate chain: /opt/zimbra/ssl/letsencrypt/cert.pem: OK
Если проверка завершилась неудачно, то проверяйте как собрался IdenTrust, скорей всего ошибка в нём:** Verifying ‘/opt/zimbra/ssl/letsencrypt/cert.pem’ against ‘/opt/zimbra/ssl/letsencrypt/privkey.pem’Certificate ‘/opt/zimbra/ssl/letsencrypt/cert.pem’ and private key ‘/opt/zimbra/ssl/letsencrypt/privkey.pem’ match.
** Verifying ‘/opt/zimbra/ssl/letsencrypt/cert.pem’ against ‘/opt/zimbra/ssl/letsencrypt/zimbra_chain.pem’ERROR: Unable to validate certificate chain: /opt/zimbra/ssl/letsencrypt/cert.pem: C = US, O = Let’s Encrypt, CN = Let’s Encrypt Authority X3error 2 at 1 depth lookup:unable to get issuer certificate
Установка ssl сертификата на сервер zimbra —
Небольшая заметка о том, как установить имеющийся сертификат на сервер Zimbra
Перед установкой проверяю, что есть все необходимые сертификаты и ключи, а именно:
- Цепочка сертификатов удостоверяющего центра, например commercial_ca.crt
- Выданный на домен или wildcard сертификат, например commercial.crt
- Выданный на домен или wildcard приватный ключ, например commercial.key
Важно, что приватный ключ должен находится в директории /opt/zimbra/ssl/zimbra/commercial/commercial.key
Сертификаты можно положить в любое место, например в /tmp.
Что бы проверить, что ключ соответствует сертификату выполняю от имени root:/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /tmp/commercial.crt /tmp/commercial_ca.crt
Если все хорошо, в ответ получаю:
** Verifying /tmp/commercial.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Certificate (/tmp/commercial.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
Valid Certificate: /tmp/commercial.crt: OK
После этогоустанавливаю сертифкат на сервер и перезапускаю сервис zimbra (от имени root):/opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/commercial.crt /tmp/commercial_ca.crt && su - zimbra -c 'zmcontrol restart'
Обращаю внимание, что в случае мультисерверной установки достаточно установить сертификат на zimbra-proxy.
Установка сертификатов
Для установки сертификатов имеет смысл сделать бэкап текущихКопируется файл rivkey.pem в /opt/zimbra/ssl/zimbra/commercial/commercial.key
cp/opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.keychown zimbra:zimbra /opt/zimbra/ssl/zimbra/commercial/commercial.keytar -czf /opt/zimbra/ssl/zimbra-$(date “%d.%m.%y_%H.%M”).tar.gz /opt/zimbra/ssl/zimbra
Останавливаем сервисы Zimbra, и загружаем новые сертификаты и после этого запускаем службы снова:sudo su – zimbra -c “zmproxyctl stop”sudo su – zimbra -c “zmmailboxdctl stop”sudo su – zimbra -c “zmcertmgr deploycrt comm /opt/zimbra/ssl/letsencrypt/cert.pem /opt/zimbra/ssl/letsencrypt/zimbra_chain.pem”sudo su – zimbra -c “zmcontrol restart”
Экспорт и установка сертификата zimbra.
При работе с сервером корпоративных коммуникаций Zimbra часто возникает проблема с самоподписанным сертификатом, почтовые клиенты и браузеры каждый раз выдают сообщение об ошибке проверки сертификата и угрозе безопасности. Как минимум это неудобно, да и не стоит приучать пользователей игнорировать непроверенные сертификаты. К счастью, данная проблема решается очень просто, о чем мы расскажем в этой статье.
Если мы попробуем подключиться к почтовому серверу с самоподписанным сертификатом, то получим следующее сообщение об ошибке сертификата безопасности.
Можно, конечно, данное предупреждение игнорировать, но, кроме неудобства, это приучает пользователей легкомысленно относится к подобным предупреждениям, что таит потенциальную угрозу безопасности.
Попробуем разобраться, что именно не нравится браузеру. Прочитав подробности ошибки становится понятно, что система не может доверять этому сертификату, так как нет доверия к выпустившему его центру сертификации.
Но мы, в отличие от системы, знаем, кто выпустил данный сертификат и доверяем этому центру. Чтобы система также начала доверять сертификатам данного центра сертификации нам нужно экспортировать корневой сертификат Zimbra и установить его в систему.
Перейдем на почтовый сервер и повысим права до суперпользователя:
sudo -sЗатем перейдем в папку центра сертификации и экспортируем корневой сертификат:
cd /opt/zimbra/ssl/zimbra/ca
openssl x509 -in ca.pem -outform DER -out ~/zimbra.cerПосле чего корневой сертификат Zimbra будет находиться в домашней папке вашего пользователя. Чтобы скачать его можно воспользоваться любым клиентом, позволяющим передавать файлы через ssh. Например популярным FTP-клиентом Filezilla. В параметрах подключения укажите адрес сервера, учетные данные вашего пользователя и порт подключения 22. После подключения вы сразу окажетесь в своей домашней папке и сможете без проблем скачать сертификат.
Теперь установим его на целевой системе, для этого нужно открыть сертификат двойным щелчком и выбрать Установить сертификат. Откроется мастер импорта сертификатов, работа с которым не представляет сложности. На этапе выбора хранилища ставим переключатель в положение Поместить все сертификаты в выбранное хранилище, где выбираем Доверенные коренные центры сертификации.
Соглашаемся с предупреждением и завершаем установку сертификата. Теперь при подключении к почтовому серверу ошибка сертификата появляться не будет и пользователи будут видеть, что работают по защищенному соединению с доверенным ресурсом.
Аналогичным образом сертификат следует установить на все работающие с почтовым сервером клиентские ПК. Если в вашей сети развернута ActiveDirectory то вы можете автоматически распространять сертификат с помощью групповых политик.
