【发布时间】:2018-06-01 13:34:24
【问题描述】:
我正在寻找一个 PHP 脚本来检查脚本是否可以连接到 http 端口。
我试过这样的代码,但是https和http的响应是一样的:
<?php
$get = stream_context_create(array("ssl" => array("capture_peer_cert" => TRUE)));
$read = stream_socket_client("ssl://www.raffelpages.com:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $get);
$cert = stream_context_get_params($read);
var_dump($cert["options"]["ssl"]["peer_certificate"]);
【问题讨论】:
-
你发现了什么?你试过什么?什么失败了?
-
我用尝试过的脚本更新了我的帖子
-
此方案使用 fopen() 而不是 stream_socket_client():stackoverflow.com/questions/36950874/…
-
我也试过了,但它只在所有链接上显示“1”
-
值得注意的是,这里可能对“有效证书”有不同的定义: 0) 连接是否响应带有某种 X.509 证书的 SSL/TLS 握手? 1)根据您的系统时钟是否在其有效期内? 2) 它是为特定域名发行的吗? 3) 它是否由系统上某些根证书存储中列出的权威机构签署? 4)它被撤销了吗?请注意,这些中的每一个都依赖于一些额外的数据来进行比较,而不仅仅是打开连接。