Как стать автором
Обновить

Комментарии 8

Облазив кучу форумов и статей так и не научились работать с certbot?

Тут не в нем дело, а в том как Carbonio CE проверяет сертификат

То есть сертбот создаёт вам цепочку, но вы решили навелосипедить и при обновлении CA опять поймать костыли? Вам стоит лучше изучить матчасть по работе сертификатов, сертботу и карбонио.

Carbonio CE не умеет сам обновлять сертификаты, а certbot их генерирует на 3 мес. Даже в официальной документации прописан ручной метод обновления. Скрипт просто упрощает рутину. Сам скрипт работает более полу года и за это время не возникло ни одной проблемы.

Ставите таймер системд или задание крон, настраиваете хук обновления сертификата в сертбот, цепочку СА сертбот сам создаёт и убирает дублирующую работу из скрипта. То что вы сделали это велосипед от незнания инструментов. Перечитайте комментарий и попробуйте осознать.

Сертбот их ставит на 3 месяца и прописывает службу, которая их обновляет автоматически. Раньше нужно было в крон ручное обновление прописывать, сегодня и этого не требуется.

AlexGluck и Fell-x27, а каким образом знание и умение пользоваться certbot заменит те, действия которые проворачивает carbonio с помощью команды zmcertmgr deploycrt? zmcertmgr deploycrt копирует полученные приватный ключ и сертификат в кучу разных каталогов для разных служб:

zextras@mail:~$ zmcertmgr deploycrt comm /tmp/cert.pem /tmp/chain.pem
** Verifying '/tmp/cert.pem' against '/opt/zextras/ssl/carbonio/commercial/commercial.key'
Certificate '/tmp/cert.pem' and private key '/opt/zextras/ssl/carbonio/commercial/commercial.key' match.
** Verifying '/tmp/cert.pem' against '/tmp/chain.pem'
Valid certificate chain: /tmp/cert.pem: OK
** Copying '/tmp/cert.pem' to '/opt/zextras/ssl/carbonio/commercial/commercial.crt'
** Copying '/tmp/chain.pem' to '/opt/zextras/ssl/carbonio/commercial/commercial_ca.crt'
** Appending ca chain '/tmp/chain.pem' to '/opt/zextras/ssl/carbonio/commercial/commercial.crt'
** Importing cert '/opt/zextras/ssl/carbonio/commercial/commercial_ca.crt' as 'zcs-user-commercial_ca' into cacerts '/opt/zextras/common/lib/jvm/java/lib/security/cacerts'
** NOTE: restart mailboxd to use the imported certificate.
** Saving config key 'zimbraSSLCertificate' via zmprov modifyServer mail.takota.ru...ok
** Saving config key 'zimbraSSLPrivateKey' via zmprov modifyServer mail.takota.ru...ok
** Installing ldap certificate '/opt/zextras/conf/slapd.crt' and key '/opt/zextras/conf/slapd.key'
** Copying '/opt/zextras/ssl/carbonio/commercial/commercial.crt' to '/opt/zextras/conf/slapd.crt'
** Copying '/opt/zextras/ssl/carbonio/commercial/commercial.key' to '/opt/zextras/conf/slapd.key'
** Creating file '/opt/zextras/ssl/carbonio/jetty.pkcs12'
** Creating keystore '/opt/zextras/mailboxd/etc/keystore'
** Installing mta certificate '/opt/zextras/conf/smtpd.crt' and key '/opt/zextras/conf/smtpd.key'
** Copying '/opt/zextras/ssl/carbonio/commercial/commercial.crt' to '/opt/zextras/conf/smtpd.crt'
** Copying '/opt/zextras/ssl/carbonio/commercial/commercial.key' to '/opt/zextras/conf/smtpd.key'
** Installing proxy certificate '/opt/zextras/conf/nginx.crt' and key '/opt/zextras/conf/nginx.key'
** Copying '/opt/zextras/ssl/carbonio/commercial/commercial.crt' to '/opt/zextras/conf/nginx.crt'
** Copying '/opt/zextras/ssl/carbonio/commercial/commercial.key' to '/opt/zextras/conf/nginx.key'
** NOTE: restart services to use the new certificates.
** Cleaning up 7 files from '/opt/zextras/conf/ca'
** Removing /opt/zextras/conf/ca/commercial_ca_2.crt
** Removing /opt/zextras/conf/ca/ca.key
** Removing /opt/zextras/conf/ca/64138916.0
** Removing /opt/zextras/conf/ca/4042bcee.0
** Removing /opt/zextras/conf/ca/commercial_ca_1.crt
** Removing /opt/zextras/conf/ca/31dfb39d.0
** Removing /opt/zextras/conf/ca/ca.pem
** Copying CA to /opt/zextras/conf/ca
** Copying '/opt/zextras/ssl/carbonio/ca/ca.key' to '/opt/zextras/conf/ca/ca.key'
** Copying '/opt/zextras/ssl/carbonio/ca/ca.pem' to '/opt/zextras/conf/ca/ca.pem'
** Creating CA hash symlink '64138916.0' -> 'ca.pem'
** Creating /opt/zextras/conf/ca/commercial_ca_1.crt
** Creating CA hash symlink 'aa578057.0' -> 'commercial_ca_1.crt'
** Creating /opt/zextras/conf/ca/commercial_ca_2.crt
** Creating CA hash symlink '4042bcee.0' -> 'commercial_ca_2.crt'

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

С какой-то версии появилась возможность получать сертификаты для virtual host и обновлять их с помощью certbot, как написано во всех новых инструкциях для Carbonio. Только есть нюанс: сертификаты виртуальных хостов (даже если это вирт.хост на основном домене) применяются только к тем службам, которые работают через proxy. И к таким службам не отноcится smtp.

Если вы обновляете с помощью certbot по новым инструкциям, то проверьте, какой сертификат у вас на smtp портах:

openssl s_client -connect mail.takota.ru:25 -starttls smtp
openssl s_client -connect mail.takota.ru:465
openssl s_client -connect mail.takota.ru:587 -starttls smtp

и можете сильно удивиться.

Сертбот отвечает за получение сертификата, а вот деплой этого сертификата в большинстве случаев делает хуками. Таким образом всё что делает `zmcertmgr deploycrt` можно сделать и через сертбот, указав в хуках запуск встроенной команды или написанием простого скрипта раскладывающего сертификат.

Исходя вышенаписанного следующее предложение ошибочно:

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории