Как подключить dovecot на порт 993 с помощью squirrelmail

Я пытаюсь подключить dovecot к порту 993, но dovecot показывает следующую ошибку:

dovecot: imap-login: Disconnected (no auth attempts in 60 secs): user=<>, rip=192.***.***.***, lip=192.***.***.***, TLS handshaking: SSL_accept() failed: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol, session=<3k6jgTwVLwDAqL+E>

конфиг белки;

$imap_auth_mech        = 'login';
$use_imap_tls          = 1;
$imapServerAddress      = 'dovecot.server';
$imapPort               = 993;

Когда я пытаюсь использовать telnet и openssl на сервере squirrelmail;

[root@aa ~]# telnet dovecot.server 993
Trying 192.***.***.***...
Connected to dovecot.server.
Escape character is '^]'.

[root@aa ~]# openssl s_client -connect dovecot.server:993
...
...
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

Примечание. Кстати, порт 143 работает нормально.


person hellzone    schedule 06.05.2015    source источник


Ответы (1)


Проверьте свой журнал ошибок PHP на наличие таких вещей:

PHP Warning:  fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed ..
PHP Warning:  fsockopen(): Failed to enable crypto ..
PHP Warning:  fsockopen(): unable to connect to tls://dovecot.server:993 (Unknown error) ..

Если это так, библиотека openssl не может проверить сертификат вашего сервера. Это легко исправить, добавив сертификат для подключения в локальный тайник с сертификатами. Вы можете узнать, где это, с помощью <PRE><?php var_dump(openssl_get_cert_locations()); ?> </pre> и посмотрев на настройку ini_cafile.

Вы можете получить сертификат вашего сервера с помощью этой команды:

openssl x509 -in <(openssl s_client -connect dovecot.server:993 -prexit 2>/dev/null) > /tmp/cacert.pem

Добавьте его в файл сертификата, и вы должны идти.

Одно предостережение: CN сертификата ДОЛЖЕН совпадать с именем хоста, которое вы используете для подключения к серверу! Если он самоподписанный, убедитесь, что он использует dovecot.server в качестве общего имени.

person Allen Luce    schedule 13.05.2015