Pull to refresh

Zimbra с сертификатом, подписанным УЦ Active Directory

Reading time4 min
Views3.4K
image

В один, не очень прекрасный день, заставили нас перейти со ставшего уже родным Alt-n mDaemon на Zimbra Collaboration Suite.

Все бы ничего, и холивар mDaemon vs. Zimbra оставим за рамками статьи, сам переход прошел довольно плавно, но пользователи стали тревожиться по поводу предупреждений браузеров и почтовых клиентов о недоверенном сертификате. Так как почтовый обмен осуществляется исключительно внутри корпорации, mDeamon имел сертификат, выданный удостоверяющим центром AD, поэтому там все было гладко. И тогда решил я и Zimbra выдать сертификат от ADCS.

Для начала попробовал через стандартный диалог web-интерфейса. Но там даже со стандартными настройками выходит ошибка.

imageimage

Правда, если поле Дополнительное имя субъекта удалить, то генерация запроса проходит нормально.

Далее, либо скачиваем файл commercial.csr, либо заходим в консоль SSH, под учеткой zimbra и смотрим его содержимое:

cat /opt/zimbra/ssl/zimbra/commercial/commercial.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIC8zCCAdsCAQAwZDELMAkGA1UEBhMCUlUxCzAJBgNVBAgMAjUyMQ0wCwYDVQQH
<skip>
IYTKJfkDPOm5XO4pQBtufMMQnmwUrnqcfrt8LUfCsjWwiImfcUaG
-----END CERTIFICATE REQUEST-----

Копируем его содержимое и переходим в веб-интерфейс удостоверяющего центра Active Directory. Тут нужно упомянуть, что с этим интерфейсом нормально может работать только Internet Explorer.

image
Zimbra умеет работать только с base-64 сертификатами, поэтому выбираем соответствующие опции.

Нажимаем «Запроса сертификата», далее «Расширенный запрос сертификата», затем «Выдать запрос, используя base-64 шифрованный файл PKCS #10, или выдать запрос обновления, используя base-64 шифрованный файл PKCS #7.»

В первое поле вставляем текст запроса, шаблон выбираем «Веб-сервер».

image

После нажатия на кнопку «Выдать», нам данный сертификат выпускается и можно его загрузить (в BASE-64 виде, конечно же).

С помощью web-интерфейса zimbra мне так и не удалось установить данный сертификат, поэтому делаем это с помощью консоли.

Любым способом размещаем полученный сертификат и корневой сертификат УЦ в каталоге /opt/zimbra/ssl/zimbra/commercial

Теперь проверяем сертификат на валидность командой:

[zimbra@zimbra commercial]$ zmcertmgr verifycrt comm commercial.key certnew.cer CA.cer
** Verifying 'certnew.cer' against 'commercial.key'
Certificate 'certnew.cer' and private key 'commercial.key' match.
** Verifying 'certnew.cer' against 'CA.cer'
Valid certificate chain: certnew.cer: OK
[zimbra@zimbra commercial]$

Если все ОК, то внедряем сертификат:

[zimbra@zimbra commercial]$ zmcertmgr deploycrt comm certnew.cer CA.cer
** Fixing newlines in 'certnew.cer'
** Fixing newlines in 'CA.cer'
** Verifying 'certnew.cer' against '/opt/zimbra/ssl/zimbra/commercial/commercial.key'
Certificate 'certnew.cer' and private key '/opt/zimbra/ssl/zimbra/commercial/commercial.key' match.
** Verifying 'certnew.cer' against 'CA.cer'
Valid certificate chain: certnew.cer: OK
** Copying 'certnew.cer' to '/opt/zimbra/ssl/zimbra/commercial/commercial.crt'
** Copying 'CA.cer' to '/opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt'
** Appending ca chain 'CA.cer' to '/opt/zimbra/ssl/zimbra/commercial/commercial.crt'
** Importing cert '/opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt' as 'zcs-user-сommercial_ca' into cacerts '/opt/zimbra/common/lib/jvm/java/jre/lib/security/cacerts'
** NOTE: restart mailboxd to use the imported certificate.
** Saving config key 'zimbraSSLCertificate' via zmprov modifyServer zimbra.domain.local...ok
** Saving config key 'zimbraSSLPrivateKey' via zmprov modifyServer zimbra.domain.local...ok
** Installing ldap certificate '/opt/zimbra/conf/slapd.crt' and key '/opt/zimbra/conf/slapd.key'
** Copying '/opt/zimbra/ssl/zimbra/commercial/commercial.crt' to '/opt/zimbra/conf/slapd.crt'
** Copying '/opt/zimbra/ssl/zimbra/commercial/commercial.key' to '/opt/zimbra/conf/slapd.key'
** Creating file '/opt/zimbra/ssl/zimbra/jetty.pkcs12'
** Creating keystore '/opt/zimbra/mailboxd/etc/keystore'
** Installing mta certificate '/opt/zimbra/conf/smtpd.crt' and key '/opt/zimbra/conf/smtpd.key'
** Copying '/opt/zimbra/ssl/zimbra/commercial/commercial.crt' to '/opt/zimbra/conf/smtpd.crt'
** Copying '/opt/zimbra/ssl/zimbra/commercial/commercial.key' to '/opt/zimbra/conf/smtpd.key'
** Installing proxy certificate '/opt/zimbra/conf/nginx.crt' and key '/opt/zimbra/conf/nginx.key'
** Copying '/opt/zimbra/ssl/zimbra/commercial/commercial.crt' to '/opt/zimbra/conf/nginx.crt'
** Copying '/opt/zimbra/ssl/zimbra/commercial/commercial.key' to '/opt/zimbra/conf/nginx.key'
** NOTE: restart services to use the new certificates.
** Cleaning up 3 files from '/opt/zimbra/conf/ca'
** Removing /opt/zimbra/conf/ca/ca.key
** Removing /opt/zimbra/conf/ca/ca.pem
** Removing /opt/zimbra/conf/ca/d8183cc3.0
** Copying CA to /opt/zimbra/conf/ca
** Copying '/opt/zimbra/ssl/zimbra/ca/ca.key' to '/opt/zimbra/conf/ca/ca.key'
** Copying '/opt/zimbra/ssl/zimbra/ca/ca.pem' to '/opt/zimbra/conf/ca/ca.pem'
** Creating CA hash symlink 'd8183cc3.0' -> 'ca.pem'
** Creating /opt/zimbra/conf/ca/commercial_ca_1.crt
** Creating CA hash symlink '0c6ba62c.0' -> 'commercial_ca_1.crt'
[zimbra@zimbra commercial]$

Просмотреть примененный сертификат можно командой

zmcertmgr viewdeployedcrt

После всего перезапускаем службы zimbra

zmcontrol restart

Проверяем результат:

image

Предупреждений нет, сервис виден, как валидный. Что и требовалось!
Tags:
Hubs:
+2
Comments2

Articles

Change theme settings