Открытый поток IMAP: проблема с самозаверяющим сертификатом


Я пытаюсь открыть незащищенное (порт 143) соединение IMAP (я использую PHP):

imap_open('{localhost:143/imap}INBOX', USERNAME, PASS);

И я получаю следующую ошибку: Certificate failure for localhost: self signed certificate ...

Хорошо. Я пытался использовать /novalidate-cert параметр почтового ящика. Затем я получаю еще одну ошибку: Can not authenticate to IMAP server.

Я также попытался объединить все возможные параметры небезопасного соединения, такие как /notls,/norsh и /secure. Но я всегда получаю ошибки.

Это конфигурация голубятни, которую я использую:

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=LOGIN] Dovecot ready.

Сертификат действительно самозаверяющий и сгенерировано с помощью openssl.

Вопросы таковы:

  1. Почему ошибка сертификата возникает, когда я использую незащищенное соединение?
  2. Что не так с конфигурацией почтового сервера?
Author: sparkle, 2012-10-17

2 answers

STARTTLS, конечно, использует сертификат для запуска канала TLS, поэтому вы увидели ошибку самозаверяющего сертификата. Can not authenticate, однако, подразумевает, что ваше имя пользователя и пароль неверны. Попробуйте войти в систему с помощью telnet, чтобы убедиться, что ваш пользователь и пароль верны

 1
Author: Max, 2012-10-18 13:58:48

Используйте этот код

   imap_open('{localhost:143/imap/novalidate-cert/debug}INBOX', USERNAME, PASS);

Вместо этого

    imap_open('{localhost:143/imap}INBOX', USERNAME, PASS); 
 1
Author: Rammie, 2017-03-16 06:26:32