SSL 上的 fsockopen 在特定主机上不起作用

fsockopen on SSL does not working on specific host

在工作的生产服务器上,在某个时候(6 月 24 日 13:18),fsockopen 开始失败,原因不明。

$sock = fsockopen("ssl://mail.dupcheck.org",993, $errno, $errstr, 300);

重要的是,

====

PHP 7.3.3-1, ubuntu16.04.1


是的,我阅读了手册,在谷歌上搜索了几个小时,没有任何缓解。没有人知道那是什么,包括系统管理员。

来自评论:

... openssl s_client perfectly working ...

它的工作原理是连接并进行 TLS 握手。但它不能完美地工作,因为它清楚地表明证书验证失败:

$ openssl s_client -connect mail.dupcheck.org:993
...
Certificate chain
 0 s:/OU=Domain Control Validated/CN=mail.dupcheck.org
   i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2
...
    Verify return code: 10 (certificate has expired)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

仔细查看证书:

    Serial Number:
        92:a0:2d:2a:2f:28:6a:d5
Signature Algorithm: sha256WithRSAEncryption
    Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certs.godaddy.com/repository/, CN=Go Daddy Secure Certificate Authority - G2
    Validity
        Not Before: Jun 24 10:16:38 2016 GMT
        Not After : Jun 24 10:16:38 2019 GMT

因此,该证书几周前就过期了。这可能是连接失败的原因。

... tls.imirhil.fr/tls/mail.dupcheck.org:993 does not seem to show anything extraordinary.

看起来这个站点根本不检查证书的有效性。