Процесс установки коммерческого сертификата для почтового сервера Zimbra. Сервер мультидоменный, выбран SAN сертификат (один сертификат для нескольких разных доменов, размещенных на одном сервере). Тип проверки DV (проверяется только право владения доменным именем).
Первым делом заказываем нужный сертификат, указав все домены своего почтового сервера. После подтверждения права владения доменами получаем необходимые файлы .ca, .crt, private-key
Так же от УЦ были получены файлы корневых сертификатов, но на поверку они составляли не правильную цепочку, еще и с истекающим сроком действия.
Поиск по интернет привёл к нужному корневому сертификату
https://www.tbs-certificates.co.uk/FAQ/en/racine-USERTrustRSACertificationAuthority.html
Наконец имеем нужную цепочку сертификатов
Следующий шаг – собрать CA-bundle – файл, который содержит корневые и промежуточные сертификаты в определенном порядке
Теперь, когда файлы подготовлены, можно приступить к установке на сервер. Все команды в консоли выполняются из под пользователя zimbra
Сохраняем приватный ключ на сервер в папку /opt/zimbra/ssl/zimbra/commercial/ под именем commercial.key
Сохраняем сертификат домена и ca-bundle в папку /tmp
Проверим
/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /tmp/mail.himindustrija.com.crt /tmp/mail.himindustrija.com.ca-bundle Если всё нормально, получаем об этом сообщение ** Verifying '/tmp/mail.himindustrija.com.crt' against '/opt/zimbra/ssl/zimbra/commercial/commercial.key' Certificate '/tmp/mail.himindustrija.com.crt' and private key '/opt/zimbra/ssl/zimbra/commercial/commercial.key' match. ** Verifying '/tmp/mail.himindustrija.com.crt' against '/tmp/mail.himindustrija.com.ca-bundle' Valid certificate chain: /tmp/mail.himindustrija.com.crt: OK
Развернём сертификат
/opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/mail.himindustrija.com.crt /tmp/mail.himindustrija.com.ca-bundle ** Fixing newlines in '/tmp/mail.himindustrija.com.crt' Can't rename /tmp/mail.himindustrija.com.crt to /tmp/mail.himindustrija.com.crt.bak: Operation not permitted, skipping file at /opt/zimbra/bin/zmcertmgr line 1239. ** Fixing newlines in '/tmp/mail.himindustrija.com.ca-bundle' Can't rename /tmp/mail.himindustrija.com.ca-bundle to /tmp/mail.himindustrija.com.ca-bundle.bak: Operation not permitted, skipping file at /opt/zimbra/bin/zmcertmgr line 1239. ** Verifying '/tmp/mail.himindustrija.com.crt' against '/opt/zimbra/ssl/zimbra/commercial/commercial.key' Certificate '/tmp/mail.himindustrija.com.crt' and private key '/opt/zimbra/ssl/zimbra/commercial/commercial.key' match. ** Verifying '/tmp/mail.himindustrija.com.crt' against '/tmp/mail.himindustrija.com.ca-bundle' Valid certificate chain: /tmp/mail.himindustrija.com.crt: OK ** Copying '/tmp/mail.himindustrija.com.crt' to '/opt/zimbra/ssl/zimbra/commercial/commercial.crt' ** Copying '/tmp/mail.himindustrija.com.ca-bundle' to '/opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt' ** Appending ca chain '/tmp/mail.himindustrija.com.ca-bundle' to '/opt/zimbra/ssl/zimbra/commercial/commercial.crt' ** Importing cert '/opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt' as 'zcs-user-commercial_ca' into cacerts '/opt/zimbra/common/lib/jvm/java/lib/security/cacerts' ** NOTE: restart mailboxd to use the imported certificate. ** Saving config key 'zimbraSSLCertificate' via zmprov modifyServer mail.himindustrija.com...ok ** Saving config key 'zimbraSSLPrivateKey' via zmprov modifyServer mail.himindustrija.com...ok ** Installing imapd certificate '/opt/zimbra/conf/imapd.crt' and key '/opt/zimbra/conf/imapd.key' ** Copying '/opt/zimbra/ssl/zimbra/commercial/commercial.crt' to '/opt/zimbra/conf/imapd.crt' ** Copying '/opt/zimbra/ssl/zimbra/commercial/commercial.key' to '/opt/zimbra/conf/imapd.key' ** Creating file '/opt/zimbra/ssl/zimbra/jetty.pkcs12' ** Creating keystore '/opt/zimbra/conf/imapd.keystore' ** 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/89b766bc.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 '89b766bc.0' -> 'ca.pem' ** Creating /opt/zimbra/conf/ca/commercial_ca_1.crt ** Creating CA hash symlink 'fc5a8f99.0' -> 'commercial_ca_1.crt' ** Creating /opt/zimbra/conf/ca/commercial_ca_2.crt ** Creating CA hash symlink '65ff7287.0' -> 'commercial_ca_2.crt' ** Creating /opt/zimbra/conf/ca/commercial_ca_3.crt ** Creating CA hash symlink 'fc5a8f99.1' -> 'commercial_ca_3.crt'
Убедимся, что правильный сертификат был развернут
/opt/zimbra/bin/zmcertmgr viewdeployedcrt - imapd: /opt/zimbra/conf/imapd.crt notBefore=Apr 21 00:00:00 2020 GMT notAfter=Apr 21 23:59:59 2022 GMT subject= /CN=mail.himindustrija.com issuer= /C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Domain Validation Secure Server CA SubjectAltName=mail.himindustrija.com, mail.himindustria.com, mail.himindustria.ru - ldap: /opt/zimbra/conf/slapd.crt notBefore=Apr 21 00:00:00 2020 GMT notAfter=Apr 21 23:59:59 2022 GMT subject= /CN=mail.himindustrija.com issuer= /C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Domain Validation Secure Server CA SubjectAltName=mail.himindustrija.com, mail.himindustria.com, mail.himindustria.ru - mailboxd: /opt/zimbra/mailboxd/etc/mailboxd.pem notBefore=Apr 21 00:00:00 2020 GMT notAfter=Apr 21 23:59:59 2022 GMT subject= /CN=mail.himindustrija.com issuer= /C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Domain Validation Secure Server CA SubjectAltName=mail.himindustrija.com, mail.himindustria.com, mail.himindustria.ru - mta: /opt/zimbra/conf/smtpd.crt notBefore=Apr 21 00:00:00 2020 GMT notAfter=Apr 21 23:59:59 2022 GMT subject= /CN=mail.himindustrija.com issuer= /C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Domain Validation Secure Server CA SubjectAltName=mail.himindustrija.com, mail.himindustria.com, mail.himindustria.ru - proxy: /opt/zimbra/conf/nginx.crt notBefore=Apr 21 00:00:00 2020 GMT notAfter=Apr 21 23:59:59 2022 GMT subject= /CN=mail.himindustrija.com issuer= /C=GB/ST=Greater Manchester/L=Salford/O=Sectigo Limited/CN=Sectigo RSA Domain Validation Secure Server CA SubjectAltName=mail.himindustrija.com, mail.himindustria.com, mail.himindustria.ru
Чтобы применить изменения, необходимо перезапустить службы Zimbra
zmcontrol restart
UPD 2022
При установке нового Wildcard SSL-сертификата возникли сложности
Первая ошибка
** Creating file '/opt/zimbra/ssl/zimbra/jetty.pkcs12' ERROR: openssl pkcs12 export to '/opt/zimbra/ssl/zimbra/jetty.pkcs12' failed(1): unable to load certificates 140665143981720:error:0906D066:PEM routines:PEM_read_bio:bad end line:pem_lib.c:805:
Не хватает прав на загруженные файлы, фиксим:
chown zimbra:zimbra /tmp/*.crt chmod 666 /tmp/*.crt
Вторая ошибка, при попытке запуска служб zimbra
Unable to start TLS: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed when connecting to ldap master. Cannot determine services - exiting
фиксим отключением SSLv3
zmlocalconfig -e ldap_starttls_required=false zmlocalconfig -e ldap_starttls_supported=0