Roundcube, php 5.6 e certificados autoassinados

Roundcube, php 5.6 e certificados autoassinados

Atualmente estou portando um dos meus servidores para outro. Esse servidor está executando Postfix + Dovecot usando um certificado autoassinado. Meu front-end da web costumava ser roundcube. Agora o problema é que o novo servidor possui o PHP 5.6 instalado, que apresenta problemas conhecidos ao usar certificados autoassinados.

Primeiro de tudo, o erro do roundcube é:

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /var/www/roundcube/program/lib/Roundcube/rcube_imap_generic.php on line 915
[05-May-2015 13:11:11 +0200]: <8h4tkjbn> IMAP Error: Login failed for XXXXXXXXXXX from XXXXXXXXXXX. Unable to negotiate TLS in /var/www/roundcube/program/lib/Roundcube/rcube_imap.php on line 198 (POST /?_task=login?_task=login&_action=login)

Eu descobri que você pode colocar isso em config.inc.php:

$config['imap_conn_options'] = array( 
  'ssl'         => array( 
     'verify_peer'  => true, 
     'allow_self_signed' => true,
     'verify_depth' => 3, 
     'cafile'       => '/etc/postfix/sslcert/mailserver.crt', 
   ), 
 );

 $config['smtp_conn_options'] = array( 
   'ssl'         => array( 
     'verify_peer'  => true,
     'allow_self_signed' => true,
     'verify_depth' => 3, 
     'cafile'       => '/etc/postfix/sslcert/mailserver.crt', 
   ), 
 );

(A localização do arquivo .crt e .key é /etc/postfix/sslcert/mailserver.*)

Ao colocar isso na configuração, o erro é:

[05-May-2015 13:13:48 Europe/Berlin] PHP Warning:  stream_socket_enable_crypto(): Unable to locate peer certificate CN in /var/www/roundcube/program/lib/Roundcube/rcube_imap_generic.php on line 915

Eu tentei várias variações dessas linhas de configuração, mas estou preso aqui. Talvez alguém aqui possa me ajudar!

Se precisar de mais informações, deixe um comentário e eu editarei o primeiro post!

Responder1

parece que o seu problema é que você está especificando o certificado do servidor de e-mail e não o certificado da CA que forneceu o certificado (o certificado da cadeia)

informação relacionada