Добавление доверенного SSL сертификата в Зимбру

Рейтинг:   / 1
ПлохоОтлично 

Началось всё с того, что некоторые браузеры начали жаловаться на зимбравский SSL-сертификат, выдавая вот такие ошибки (пара примеров).
Вот Firefox:

или вот андроидная opera:

Т.е. им больше не нравится ключ Диффи-Хелемана и они отказываются заходить на вэб-интерфейс Зимбры.

Конкретно эта проблема решается вот таким образом:

su zimbra
zmprov mcf +zimbraSSLExcludeCipherSuites TLS_DHE_RSA_WITH_AES_128_CBC_SHA
zmprov mcf +zimbraSSLExcludeCipherSuites TLS_DHE_RSA_WITH_AES_256_CBC_SHA
zmprov mcf +zimbraSSLExcludeCipherSuites SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
zmmailboxdctl restart
exit

Проблемные шифры отключаются.

Но раз уж я взялся за Зимбру, то за одним решил и доверенный SSL сертификат к ней прикрутить. Для этого в Зимбре есть штатные средства.

Для начала, надо где-то заполучить этот самый доверенный сертификат. Сделать это несложно. И этот процесс я описывал недавно в это статье:

https://typical-admin.ru/obshaya/freebsd/adding-free-trusted-ssl-certificate-on-your-site

Значит, получаю аналогично сертификат от WoSign, скачиваю его и копирую на сервер с Зимброй.
В архиве я вижу ещё несколько вложенных архивов, в которых содержатся готовые сертификаты для разных вэб-серверов. Меня интересует «for Other Server.zip». Именно он, несмотря на то, что там есть и конкретно для апача сертификат.

Надо импортировать доверенный сертификат в Зимбру. Делаю вот поэтому мануалу:

http://wiki.zimbra.com/wiki/Fix_depth_lookup:unable_to_get_issuer_certificate

Описываю этот процесс пошагово. Значит, распаковываю содержимое архива «for Other Server.zip» в какой-нибудь отдельный каталог. И, находясь в этом каталоге, выполняю команды. Выполняю под рутом! Собираю все сертификаты корневого центра в один файл:

cat root.crt 1_cross_Intermediate.crt 2_issuer_Intermediate.crt > ca_bundle.crt

копирую его в специальный зимбровский каталог:

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

Проверяю, не нарушена ли цепочка сертификатов:

/opt/zimbra/bin/zmcertmgr verifycrt comm 4_user_yourdomain.ru.key 3_user_yourdomain.ru.crt

Если всё в порядке, то вывод должен быть такой:

** Verifying 3_user_yourdomain.ru.crt against 4_user_yourdomain.ru.key
Certificate (3_user_yourdomain.ru.crt) and private key (4_user_yourdomain.ru.key) match.
Valid Certificate: 3_user_yourdomain.ru.crt: OK

Копирую ключ в специальный зимбровский каталог:

cp 4_user_yourdomain.ru.key /opt/zimbra/ssl/zimbra/commercial/commercial.key

И размещаю сертификаты в зимбре:

/opt/zimbra/bin/zmcertmgr deploycrt comm 3_user_yourdomain.ru.crt ca_bundle.crt

Вывод команды должен быть таким:

** Verifying 3_user_yourdomain.ru.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Certificate (3_user_yourdomain.ru.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
Valid Certificate: 3_user_yourdomain.ru.crt: OK
** Copying 3_user_yourdomain.ru.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.

Как видно из этого вывода, Зимбра будет использовать этот сертификат для всех своих сервисов, таких как pop, imap и другие, а не только для вэб-интерфейса. Проверяю размещённый сертификат:

# /opt/zimbra/bin/zmcertmgr viewdeployedcrt
::service mta::
notBefore=Aug 23 13:24:24 2015 GMT
notAfter=Aug 23 13:24:24 2018 GMT
subject= /CN=yourdomain.ru
issuer= /C=CN/O=WoSign CA Limited/CN=WoSign CA Free SSL Certificate G2
SubjectAltName= yourdomain.ru, yourdomain1.ru, yourdomain2.ru, yourdomain3.ru
::service proxy::
notBefore=Aug 23 13:24:24 2015 GMT
notAfter=Aug 23 13:24:24 2018 GMT
subject= /CN=yourdomain.ru
issuer= /C=CN/O=WoSign CA Limited/CN=WoSign CA Free SSL Certificate G2
SubjectAltName= yyourdomain.ru, yourdomain1.ru, yourdomain2.ru, yourdomain3.ru
::service mailboxd::
notBefore=Aug 23 13:24:24 2015 GMT
notAfter=Aug 23 13:24:24 2018 GMT
subject= /CN=yourdomain.ru
issuer= /C=CN/O=WoSign CA Limited/CN=WoSign CA Free SSL Certificate G2
SubjectAltName= yourdomain.ru, yourdomain1.ru, yourdomain2.ru, yourdomain3.ru
::service ldap::
notBefore=Aug 23 13:24:24 2015 GMT
notAfter=Aug 23 13:24:24 2018 GMT
subject= /CN=yourdomain.ru
issuer= /C=CN/O=WoSign CA Limited/CN=WoSign CA Free SSL Certificate G2
SubjectAltName= yourdomain.ru, yourdomain1.ru, yourdomain2.ru, yourdomain3.ru

Всё, сертификат в порядке. Теперь надо перезапустить Зимбру и можно наблюдать, что HTTPS-соединение устанавливается уже с новым сертификатом, и браузер на него не жалуется:

Донаты принимаются на кошельки:

Yoomoney:
4100118091867315

BTC:
bc1qzw9vam8mv6derwscxl0vrnd6m9t2rpjg273mna

ETH / BNB BSC / Polygon MATIC:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

Tron:
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

USDT/USDC в сетях ETH/BSC/Polygon:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F

USDT в сети TRX (Tron):
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV

LTC:
LRMZaFCSyCT6FUF62WEX1BokWV7v2dh2zo

Doge:
DTEnGLZRps9XaWNtAhchJWSeD4uTNDRxg7

XMR:
4A6uP1WxEc7HktToZFyiJuK6YmjdL8bSn2aY653qPwABhT4Y56iFuedgHcmpvLwWE55u8qkjGc715ZJs761FqedA8gkgznr

TON:
UQAdSPiWIDx2Q1VIeezkUV3s4sNlZM90w2ohSO6bD2-okwgY