我目前正在将我的一台服务器移植到另一台。该服务器使用自签名证书运行 Postfix + Dovecot。我的 Web 前端曾经是 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
您的问题似乎是您指定的是邮件服务器证书,而不是提供该证书的 CA 的证书(链证书)