Немного об SSL-сертификатах

Можно генерировать собственные, но это редко помогает, когда хочется, чтобы у пользователей браузеры не выдавали ошибок сертификата. Потому рассмотрим коммерческие. В Zimbra существуют три метода установки сертификатов.

  1. Через веб-интерфейс.

    Через интерфейс администратора https://mail.example.com:7071/ (Сервис — Сертификаты) генерируется запрос на сертификат, далее сгенерированный файл отправляется в Центр выдачи сертификатов, полученный сертификат загружается через этот же интерфейс на сервер. Также сервер попросит отдать ему корневой сертификат удостоверяющего центра, для этого скачайте файл root_ca.pem (или подобный) с сайта Центра, выдавшего вам сертификат, и отдайте его вместе с сертификатом.

  2. Через консоль — стандартные способы

    От имени пользователя root:

    /opt/zimbra/openssl-0.9.8n/bin/openssl x509 -in ca.pem -out ca.der -outform DER

    (подробнее тут http://www.openssl.org/docs/apps/x509v3_config.html), опять же отправляем запрос с Центр. Полученный сертификат кладем в папку /opt/zimbra/ssl/zimbra/commercial, сохраняем как commercial.crt, запрос лежит там же и называется commercial.csr. Если все так, то скармливаем сертификат серверу методом:

    openssl ca -config openssl.cnf -policy policy_anything -out certs/commercial.crt -infiles commercial.csr

     Если Zimbra говорит, что сертификат ей подходит, то утверждаем его установку командой

    zmcertmgr deploycrt comm ./commercial.crt commercial_ca.crt

     Подробнее об этом методе лучше читать на сайте openssl.org.

  3. Через консоль — методы zimbra

    Наиболее жизненный вариант. Запрос формируется от пользователя root командой

/opt/zimbra/bin/zmcertmgr createcsr comm -new -subject "/C=Country/ST=State/L=City/O=Company/OU=Department/CN=mail.example.com"

    После этого в папке /opt/zimbra/ssl/zimbra/commercial появятся файлы commercial.csr и commercial.key. Первый из файлов отправляем в Центр выдачи сертификатов, полученный файл сохраняем в эту же папку как commercial.crt. Скачиваем с сайта Центра корневой сертификат. Проверяем правильность сертификата командой

/opt/zimbra/bin/zmcertmgr verifycrt comm commercial.key commercial.crt

    Если проверка прошла успешно, то устанавливаем сертификат командой

/opt/zimbra/bin/zmcertmgr deploycrt comm commercial.crt
 

Заключение:

Как ни странно, не существует единственно-верного пути. Случаются случаи, когда нужно комбинировать методы. То есть запрос генерируется одним способом, сертификат устанавливается другим. Часто проблемы вызваны неправильным форматом корневого сертификата. Также крайне рекомендуется запросы генерировать с ключом длинной 1024.

943

Комментарии

CAcert.org is a community-driven certificate authority that issues free public key certificates to the public (unlike other certificate authorities which are commercial and sell certificates).

Гость шагает до Парижу: StartSSL доверяют все, а этому CAcert'у почти никто

Стоит отметить, что сами разработчики Зимбры и дистрибьюторы, занимающиеся внедрением зимбры под заказ, советуют пользоваться ИСКЛЮЧИТЕЛЬНО консольным вариантом установки коммерческих ССЛ-сертификатов, так как консольный метод работает всегда. На свою зимбру купили сертификаты от Thawte (партнер NIC.RU, который, собственно сертификат и продал). В процессе установки возникла также проблема, заключающаяся в том, что НИК ру прислал только два файла (сертификат домена и рут-сертфикат), а зимбре нужны еще промежуточные, которые удалось обнаружить уже не на НИК.ру, а на сайте самой Thawte (SSL123_CA_Bundle.pem). Поэтому, будьте внимательны при установке сертифкатов. А сами инструкции по установке неплохие с форума зимбры http://www.zimbra.com/forums/administrators/43361-thawte-ssl123-did-not-...

Aviriel аватар

На самом деле 3й вариант, описанный здесь, по сути и есть тот же, что обсуждается в той ветке, только кратко.. Главная проблема, не описанная здесь, и плохо гуглящаяся - установка ssl-cert на распределенную zimbra :) там так красиво LDAP глючить начинает.. Надо будет описать как-нибудь процесс установки..

"Краткость", к сожалению, не учла пункт о конкатенации рут и промежуточных сертификатов в один файл и использование уже его.

Aviriel аватар

 Это уже вопрос центра выдачи сертификатов.. С Thawte все плохо, знаю.. Наиболее простой (но бесплатный и грустный) вариант - CACert. Если у Вас хватит сил и времени описать то, как Вы устанавливали Thawte сертификат на Zimbra, опишите отдельным постом здесь, будет очень полезно..

Кстати, со StartSSL'ем тоже всё весьма оригинально: zmcertmgr - это такой чудесный BASH-скрипт, который тупо запихивает сертификат в LDAP-каталог, передавая содержимое сертификата... прямо в командной строке (то есть zmprov бла-бла "СЕРТИФИКАТ"). Всё бы хорошо, но сертификат перед этим объединяется со всем ca-bundle.pem, скачанным со StartCom'а. Получается, кхм, весьма забавно: срабатывает ограничение на длину командной строки. А причина проста до маразма: там в bundle понапихано ещё и CRL'ей. А вот если вырезать из этого файла всё, что не между  BEGIN CERTIFICATE/END CERTIFICATE - экспорт работает.