Pull to refresh
75.92
Zextras
Цифровое рабочее место Zextras

Установка и обновление сертификата Let's encrypt для почтового сервера Zimbra

Reading time4 min
Views33K
В прошлый статьях нас попросили рассказать об установке и обновлении сертификатов Let’s Encrypt.

Let’s Encrypt — центр сертификации, предоставляющий бесплатные криптографические сертификаты X.509 для TLS шифрования (HTTPS). Процесс выдачи сертификатов полностью автоматизирован.

image

Выдача Let's Encrypt


Запрос на Let's Encrypt желательно выполнить на сервере с Zimbra, чтобы получить сертификат SSL, CA Intermediate и Private Key. Для этого необходимо остановить службу почтового сервера (порты 80 и 443):

1. Останавливаем службы.

zmproxyctl stop
zmmailboxdctl stop


2. Загружаем пакет Let's Encrypt и заходим в каталог letencrypt:

Примечание. В RedHat и CentOS 6 перед установкой вам нужно будет включить репозиторий EPEL.

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt




3. Запустите автоматический скрипт Let's Encrypt, используйте параметр certonly.

root@zimbra86:~/tmp/letsencrypt# ./letsencrypt-auto certonly --standalone

Сценарий настроит временный WEB-сервер для проверки и выдачи сертификата, при необходимости соглашаясь с лицензией и сообщив электронную почту:



Если вам нужно иметь несколько имен хостов на одном и том же SSL, то вместо этого следует использовать протокол Multi-SAN, SSL, где -d — ваши домены:

root@zimbra86:~/tmp/letsencrypt# ./letsencrypt-auto certonly --standalone -d xmpp.example.com -d conference.example.com

4. Если все будет хорошо с проверкой, то сертификат (сертификат + открытый ключ + цепочка) будет выпущен в формате «/etc/letencrypt/live/address/»:



5. На этом этапе вы можете снова запустить сервис и начать установку подписанного сертификата. Чтобы реализовать сертификат в Zimbra вам нужно дополнить цепочку «root CA». Создайте файл с «root CA» и строками файла «fullchain1.pem»)

root CA: (https://www.identrust.com/certificates/trustid/root-download-x3.html)

6. После того, как файл был создан, проверьте файлы с помощью следующей команды:

/opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem CHAIN_COMPLETA.pem

7. Выполните проверку, создайте резервные копии текущих сертификатов (настоятельно рекомендуется) и скопируйте секретный ключ в каталог «/opt/zimbra/ssl/zimbra/commercial» с именем «commercial.key»:

cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")
cp privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key


8. Выполните установку сертификата и перезапустите службы для проверки развертывания

/opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem

9. Правильная установка сертификата:



10. Перезагрузите сервис

zmcontrol restart

Обновление сертификатов



1. Останавливаем Zimbra.

/etc/init.d/zimbra stop

2. Получаем новые сертификаты и запускаем почтовый сервер.

certbot certonly --standalone -d mail.example.com
/etc/init.d/zimbra start


3. Полученные сертификаты потребуется загрузить в Zimbra. Копируем сертификаты:

cp /etc/letsencrypt/live/zimbra86.zimbra.io/* /opt/zimbra/ssl/letsencrypt/
chown zimbra:zimbra /opt/zimbra/ssl/letsencrypt/
cd /opt/zimbra/ssl/letsencrypt/


4. В конец файла chain.pem добавляем промежуточный сертификат Let's encrypt:

-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----


Если вы не добавите промежуточный сертификат, то получите ошибку на этапе проверки:

ERROR: Unable to validate certificate chain: cert.pem: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
error 2 at 1 depth lookup:unable to get issuer certificate


5. Проверяем установленные ключи и сертификаты:

su zimbra
$ cp /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
$ /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem

6. Если проверка прошла успешно, то устанавливаем обновленные сертификаты:

$ /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem

7. Для применения установленного сертификата перезапустите все сервисы Zimbra:

# /etc/init.d/zimbra restart

Готово!

Те же, кто желает автоматизировать процесс установки новых сертификатов, могут воспользоваться специальным скриптом, опубликованным на сайте GitHub.

Для того, чтобы все работало, необходимо:
Установить утилиту Certbot при помощи команды yum -y install certbot
Затем клонировать указанную ветку с помощью команды git clone github.com/penzoiders/zimbra-auto-letsencrypt.git
Отредактировать файл letsencrypt-zimbra.conf, чтобы он соответствовал вашей системе
Перейти в папку со скриптом и его с помощью ./zimbra-auto-letsencrypt.sh

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

По всем вопросам, связанными c Zextras Suite вы можете обратиться к Представителю компании «Zextras» Екатерине Триандафилиди по электронной почте ekaterina.triandafilidi@zextras.com
Tags:
Hubs:
+10
Comments13

Articles

Information

Website
zextras.com
Registered
Founded
Employees
201–500 employees
Location
Италия
Representative
Триандафилиди Екатерина