Roundcube、php 5.6、自己署名証明書

Roundcube、php 5.6、自己署名証明書

現在、サーバーの 1 つを別のサーバーに移植中です。そのサーバーは、自己署名証明書を使用して 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 の証明書 (チェーン証明書) ではなく、メールサーバーの証明書を指定していることにあるようです。

関連情報