вопросы сертификата dovecot imap ssl

4868
mulllhausen

я пытался настроить мой сервер dovecot imap (версия 1.0.10 - на этом этапе обновление не вариант) с помощью нового сертификата ssl в Ubuntu, например:

$ grep ^ssl /etc/dovecot/dovecot.conf ssl_disable = no ssl_cert_file = /etc/ssl/certs/mydomain.com.crt.20120904 ssl_key_file = /etc/ssl/private/mydomain.com.key.20120904 $ /etc/init.t/dovecot stop $ sudo dovecot -p $ [i enter the ssl password here] 

это не показывает никаких ошибок, и когда я бегу, ps aux | grep dovecotя получаю

root 21368 0.0 0.0 12452 688 ? Ss 15:19 0:00 dovecot -p root 21369 0.0 0.0 71772 2940 ? S 15:19 0:00 dovecot-auth dovecot 21370 0.0 0.0 14140 1904 ? S 15:19 0:00 pop3-login dovecot 21371 0.0 0.0 14140 1900 ? S 15:19 0:00 pop3-login dovecot 21372 0.0 0.0 14140 1904 ? S 15:19 0:00 pop3-login dovecot 21381 0.0 0.0 14280 2140 ? S 15:19 0:00 imap-login dovecot 21497 0.0 0.0 14280 2116 ? S 15:29 0:00 imap-login dovecot 21791 0.0 0.0 14148 1908 ? S 15:48 0:00 imap-login dovecot 21835 0.0 0.0 14148 1908 ? S 15:53 0:00 imap-login dovecot 21931 0.0 0.0 14148 1904 ? S 16:00 0:00 imap-login me 21953 0.0 0.0 5168 944 pts/0 S+ 16:02 0:00 grep --color=auto dovecot 

похоже, все работает нормально. тогда я проверяю, могу ли я подключиться к серверу dovecot, и это прекрасно работает:

$ telnet localhost 143 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK Dovecot ready. 

но когда я проверяю, правильно ли dovecot сконфигурировал ssl-сертификаты, кажется, что он не работает

$ sudo openssl s_client -connect localhost:143 -starttls imap CONNECTED(00000003) depth=0 /description=xxxxxxxxxxxxxxxxx/C=AU/ST=xxxxxxxx/L=xxxx/O=xxxxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 /description=xxxxxxxxxxx/C=AU/ST=xxxxxx/L=xxxx/O=xxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com verify error:num=27:certificate not trusted verify return:1 depth=0 /description=xxxxxxxx/C=AU/ST=xxxxxxxxxx/L=xxxx/O=xxxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com verify error:num=21:unable to verify the first certificate verify return:1 --- Certificate chain 0 s:/description=xxxxxxxxxxxx/C=AU/ST=xxxxxxxxxx/L=xxxxxxxx/O=xxxxxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA --- Server certificate -----BEGIN CERTIFICATE----- xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx . . . xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx== -----END CERTIFICATE----- subject=/description=xxxxxxxxxx/C=AU/ST=xxxxxxxxx/L=xxxxxxx/O=xxxxxx/CN=*.mydomain.com/emailAddress=postmaster@mydomain.com issuer=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA --- No client certificate CA names sent --- SSL handshake has read 2831 bytes and written 342 bytes --- New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA Server public key is 2048 bit Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : DHE-RSA-AES256-SHA Session-ID: xxxxxxxxxxxxxxxxxxxx Session-ID-ctx:  Master-Key: xxxxxxxxxxxxxxxxxx Key-Arg : None Start Time: 1351661960 Timeout : 300 (sec) Verify return code: 21 (unable to verify the first certificate) --- . OK Capability completed. 

по крайней мере, я предполагаю, что это сбой ???

0

2 ответа на вопрос

1
Richard

Проблема в openssl, а не в dovecot.

В openssl есть ошибка, которая останавливает поиск CApath по умолчанию, поэтому вы должны указать ему, где найти список сертификатов корневого CA, добавив его -CApathв командную строку. Например:

sudo openssl s_client -connect localhost:143 -starttls imap -CApath /dev/null 

Если вы еще не заполнили свою папку certs и у вас есть компьютерные знания, следуйте этому руководству, чтобы загрузить certdata.txt из Mozilla и сгенерировать необходимые файлы PEM и символические ссылки. Сценарии могут нуждаться в модификации, если у вас нет доступа к / bin, и вам нужно будет создать символическую ссылку ln -s ca-bundle.crt cert.pem.

(Указание / dev / null заставляет openssl использовать путь по умолчанию для cert.pem в вашем каталоге openssl. Чтобы узнать, где находится ваш каталог openssl, введите openssl version -d).

Поскольку вы используете StartSSL, вам может потребоваться объединить ваш сертификат и его промежуточный сертификат для dovecot, в вашем случае - CA Первичного промежуточного сервера StartCom Class 2. В их бесплатном сертификате используется первичный промежуточный сервер CA класса StartCom Class 1

отлично :) я пробежался по учебнику и теперь, когда запускаю команду `openssl ...`, я получаю `Verify return code: 0 (ok)`. чтобы посмотреть сертификаты, я могу просто пойти `cat /etc/ssl/certs/mydomain.com.crt.20120904 /etc/ssl/certs/mydomain.com.intermediate.20120904.pem> / etc / ssl / certs / mydomain. com.crt.20120904`? Конечно, я сохраню оригинальную КРТ на всякий случай ... mulllhausen 12 лет назад 0
0

Вы можете использовать verbose_ssl = yesв конфигурации dovecot для получения дополнительных результатов регистрации.

В моей конфигурации (dovecot 2.0) я использую следующие утверждения:

 ssl_cert = </etc/ssl/certs/mydomain.com.crt.20120904 ssl_key = </etc/ssl/private/mydomain.com.key.20120904 
спасибо за попытку, но это определенно не проблема. вот что происходит, когда я изменяю это на следующее: `Ошибка: Ошибка в файле конфигурации /etc/dovecot/dovecot.conf строка 96: Неизвестная настройка: ssl_cert Fatal: Неверная конфигурация в / etc / dovecot / dovecot.conf` mulllhausen 12 лет назад 0
Хорошо, теперь я вижу, что вы используете dovecot 1.0. 12 лет назад 0

Похожие вопросы