如何在 fsockopen 中禁用 ssl 检查? (PHP 5.6)
How to disable ssl check in fsockopen ? (PHP 5.6)
已将 PHP 升级到 5.6.5 并出现 fsockopen 错误:
fsockopen('ssl://74.201.154.90', '465', $errno, $error, $this->timeout);
警告:fsockopen():对等证书 CN=*.zoho.com' did not match expected CN=
74.201.154.90' in ...
警告:fsockopen():无法在...中启用加密
警告:fsockopen():无法连接到 ssl://74.201.154.90:465
fsockopen('ssl://74.201.154.90', '465', $errno, $error, $this->timeout);
尝试用 smtp.zoho.com
替换 74.201.154.90
。这应该可以解决问题。
我要提一下,这个问答有两点:
1).这个 ssl 错误的原因是什么?您应该如何避免它?正确答案是:原因是证书和主机名不匹配,你应该尽量避免设置 IP 地址而不是主机名以避免此类错误(并避免 MiTM 攻击等),这是一个很好的做法;
2).我应该在 PHP 文件中指定什么来禁用证书验证?我知道这是一种糟糕的做法,但我想知道如何禁用此验证。
已将 PHP 升级到 5.6.5 并出现 fsockopen 错误:
fsockopen('ssl://74.201.154.90', '465', $errno, $error, $this->timeout);
警告:fsockopen():对等证书 CN=*.zoho.com' did not match expected CN=
74.201.154.90' in ...
警告:fsockopen():无法在...中启用加密
警告:fsockopen():无法连接到 ssl://74.201.154.90:465
fsockopen('ssl://74.201.154.90', '465', $errno, $error, $this->timeout);
尝试用 smtp.zoho.com
替换 74.201.154.90
。这应该可以解决问题。
我要提一下,这个问答有两点: 1).这个 ssl 错误的原因是什么?您应该如何避免它?正确答案是:原因是证书和主机名不匹配,你应该尽量避免设置 IP 地址而不是主机名以避免此类错误(并避免 MiTM 攻击等),这是一个很好的做法; 2).我应该在 PHP 文件中指定什么来禁用证书验证?我知道这是一种糟糕的做法,但我想知道如何禁用此验证。