dovecot imap ssl problemas de certificado

0

Eu tenho tentado configurar o meu servidor imap dovecot (versão 1.0.10 - a atualização não é uma opção neste estágio) com um novo certificado ssl no Ubuntu assim:

$ 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]

não mostra nenhum erro e quando eu corro ps aux | grep dovecot i get

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

que parece estar tudo funcionando bem. então eu testo para ver se consigo fazer telnet para o servidor dovecot, e isso funciona bem:

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

mas quando eu testo se o dovecot configurou os certificados ssl corretamente, parece falhar:

$ 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/[email protected]
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/[email protected]
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/[email protected]
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/[email protected]
   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/[email protected]
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.

pelo menos, estou assumindo que isso é uma falha ???

    
por mulllhausen 31.10.2012 / 07:14

2 respostas

1

O problema é com o openssl, não com o dovecot.

Existe um bug no openssl que o impede procurando o caminho padrão, então você precisa dizer onde encontrar a lista de certificados de CA raiz adicionando -CApath à sua linha de comando. Por exemplo:

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

Se você ainda não preencheu sua pasta certs e tiver conhecimentos de informática, siga este tutorial para baixar certdata.txt da Mozilla e gerar os arquivos PEM e links simbólicos necessários. Os scripts podem precisar ser modificados se você não tiver acesso a / bin e será necessário criar um link simbólico ln -s ca-bundle.crt cert.pem.

(Especificar / dev / null força openssl para usar o caminho padrão de cert.pem em seu diretório openssl. Para descobrir onde seu diretório openssl está, digite openssl version -d ).

Como você está usando o StartSSL, talvez seja necessário concatenar seu certificado e seu certificado intermediário para o dovecot, no seu caso CA do Servidor Intermediário Primário Classe 2 do StartCom. Seu certificado gratuito usa CA do Servidor Intermediário Primário da Classe 1 da StartCom

    
por 01.11.2012 / 11:03
0

Você pode usar verbose_ssl = yes na configuração dovecot para produzir saída de registro adicional.

Na minha configuração (dovecot 2.0) eu uso as seguintes declarações:

 ssl_cert = </etc/ssl/certs/mydomain.com.crt.20120904
 ssl_key = </etc/ssl/private/mydomain.com.key.20120904
    
por 31.10.2012 / 09:31