【问题标题】:How to disable ssl check in fsockopen ? (PHP 5.6)如何在 fsockopen 中禁用 ssl 检查? (PHP 5.6)
【发布时间】:2015-05-18 13:46:15
【问题描述】:

将 PHP 升级到 5.6.5 并使用 fsockopen 出错:

fsockopen('ssl://74.201.154.90', '465', $errno, $error, $this->timeout);

警告:fsockopen(): Peer certificate CN=*.zoho.com' did not match expected CN=74.201.154.90' in ...

警告:fsockopen():无法在...中启用加密

警告:fsockopen():无法连接到 ssl://74.201.154.90:465

【问题讨论】:

    标签: php ssl


    【解决方案1】:

    fsockopen('ssl://74.201.154.90', '465', $errno, $error, $this->timeout);

    尝试将74.201.154.90 替换为smtp.zoho.com。这应该可以解决问题。

    【讨论】:

    • 突出显示响应的重要部分“首先,尝试将 74.201.154.90 替换为 smtp.zoho.com”。 识别并修复潜在问题要好得多(在这种情况下,通过 IP 而不是主机名访问,即使 IP 没有被证书覆盖)而不是在不完全了解它们在做什么的情况下实施变通办法(即允许对连接进行中间人攻击)。我希望在响应中更清楚地表明禁用证书验证不是你应该做的。
    • @SteffenUllrich 你说得对,我的回答措辞不当。在注意到fsockopen 呼叫中的 IP 地址之前,我写下了对他标题问题的回答。
    • @SteffenUllrich 如果您想添加自己的答案,我不介意完全删除我的答案。
    • 不,您的回答指出了真正的问题。无需再添加一个。
    【解决方案2】:

    我要提一下,这个问答有两点: 1)。这个 ssl 错误的原因是什么,你应该怎么做才能避免它?正确答案是:原因是证书和主机名不匹配,您应该尽量避免设置 IP 地址而不是主机名以避免此类错误(并避免中间人攻击等),这是一个好习惯; 2)。我应该在 PHP 文件中指定什么来禁用证书验证?我知道这是一种不好的做法,但我想知道如何禁用此验证。

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 2017-02-16
      • 2021-09-05
      • 2011-07-19
      相关资源
      最近更新 更多