Открытый поток 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.
Вопросы таковы:
- Почему ошибка сертификата возникает, когда я использую незащищенное соединение?
- Что не так с конфигурацией почтового сервера?
2 answers
STARTTLS, конечно, использует сертификат для запуска канала TLS, поэтому вы увидели ошибку самозаверяющего сертификата. Can not authenticate
, однако, подразумевает, что ваше имя пользователя и пароль неверны. Попробуйте войти в систему с помощью telnet, чтобы убедиться, что ваш пользователь и пароль верны
Используйте этот код
imap_open('{localhost:143/imap/novalidate-cert/debug}INBOX', USERNAME, PASS);
Вместо этого
imap_open('{localhost:143/imap}INBOX', USERNAME, PASS);