В настоящее время я переношу один из своих серверов на другой. На этом сервере запущены Postfix + Dovecot с использованием самоподписанного сертификата. Раньше моим веб-фронтендом был roundcube. Теперь проблема в том, что на новом сервере установлен PHP 5.6, у которого есть известные проблемы с использованием самоподписанных сертификатов.
Прежде всего, ошибка 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)
Я обнаружил, что вы можете поместить это в 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',
),
);
(Расположение файлов .crt и .key: /etc/postfix/sslcert/mailserver.*
)
При добавлении этого в конфигурацию возникает ошибка:
[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
Я пробовал разные варианты этих конфигурационных строк, но застрял здесь. Может быть, кто-то здесь сможет мне помочь!
Если вам нужна ЛЮБАЯ дополнительная информация, пожалуйста, оставьте комментарий, и я отредактирую первый пост!
решение1
похоже, что ваша проблема в том, что вы указываете сертификат своего почтового сервера, а не сертификат центра сертификации, который его предоставил (цепочечный сертификат)