Actualmente estoy transfiriendo uno de mis servidores a otro. Ese servidor ejecuta Postfix + Dovecot mediante un certificado autofirmado. Mi interfaz web solía ser roundcube. Ahora está el problema, que el nuevo servidor tiene instalado PHP 5.6, que tiene problemas conocidos al utilizar certificados autofirmados.
En primer lugar, el error de roundcube es:
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)
Descubrí que puedes poner esto en 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',
),
);
(La ubicación del archivo .crt y .key es /etc/postfix/sslcert/mailserver.*
)
Al poner esto en la configuración, el error es:
[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
He probado varias variaciones de estas líneas de configuración, pero estoy atascado aquí. ¡Quizás alguien aquí pueda ayudarme!
Si necesita CUALQUIER información adicional, envíe un comentario y editaré la primera publicación.
Respuesta1
parece que tu problema es que estás especificando el certificado de tu servidor de correo y no el certificado de la CA que proporcionó el certificado (el certificado de cadena)