【问题标题】:IMAP open stream: Self signed certificate issueIMAP 开放流:自签名证书问题
【发布时间】:2012-10-08 02:45:14
【问题描述】:

我正在尝试打开非安全(端口 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。但我总是出错。

这是我正在使用的 Dovecot 配置:

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

证书是真正自签名的,是用openssl生成的。

问题是:

  1. 为什么我使用非安全连接时会出现证书错误?
  2. 邮件服务器配置有什么问题?

【问题讨论】:

  • 身份验证错误将表明您的用户名和密码错误。
  • @Max,是的,它正在使用 STARTTLS,但它对证书有何影响?登录名和密码是正确的
  • STARTTLS 当然使用证书来启动 TLS 通道,因此您会看到自签名证书错误。但是,Can not authenticate 暗示您的用户名和密码错误。尝试使用 telnet 登录以验证您的用户和密码是否正确。
  • @Max,谢谢。问题实际上出在用户名和通行证上。但是错误消息确实令人困惑。非常感谢!
  • 我已将我的评论升级为答案,以便您接受。

标签: php certificate imap self-signed dovecot


【解决方案1】:

使用此代码

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

不是这个

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

【讨论】:

  • /imap/ssl/novalidate-cert一起为我工作。这里的关键是使用novalidate-cert 来强制没有针对已知 CA 验证证书的请求 - 感谢您的提示。正如 Max 在他的回答中所说,Can not authenticate 是另一回事。一旦我设置了novalidate-cert,我就登录了鸽舍。
【解决方案2】:

STARTTLS 当然使用证书来启动 TLS 通道,因此您会看到自签名证书错误。但是,Can not authenticate 暗示您的用户名和密码错误。尝试使用 telnet 登录以验证您的用户和密码是否正确

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 2021-02-14
    • 2019-12-11
    • 2022-01-09
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多