gpt4 book ai didi

php - 检查 SSL 的功能加载时间过长

转载 作者:行者123 更新时间:2023-12-04 22:43:10 25 4
gpt4 key购买 nike

我有一个功能可以检查 ssl 是否在我在这里找到的域上正常工作。

function has_ssl($domain)
{
$ssl_check = fsockopen('ssl://' . $domain, 443, $errno, $errstr, 1000);
$res = !!$ssl_check;
if ($res == 1) {
return true;
} else {
return false;
}
}
我正在寻找一个替代功能,因为这个功能加载时间太长,当我必须检查数百个域的 ssl 时,它也会给出服务器超时错误。如果有人可以给我一个很棒的替代功能。

最佳答案

我很高兴能帮上忙!
首先,定义一个获取 ssl 证书信息的函数:

function get_cert_info($domain){
$context = stream_context_create(['ssl' => [
'capture_peer_cert' => true,
'capture_peer_cert_chain' => true,
],
]);

$client = stream_socket_client("ssl://".$domain.":443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
if($client==false) {
return false;
}
$params = stream_context_get_params($client);
$cert = $params['options']['ssl']['peer_certificate'];
$cert_info = openssl_x509_parse($cert);
return $cert_info;
}
然后用它来检查域,如下所示:
$domain = 'example.com';
$cert_info = get_cert_info($domain);
$validTo_time_t = $cert_info['validTo_time_t'];
$validTo_time_d = date('Y-m-d H:i:s', $validTo_time_t);
if($validTo_time_d>date('Y-m-d H:i:s',now())) echo "true";
else echo "false";
另外,我刚刚检查了我的代码中的时间。
您可以查看其他信息,例如: 证书发布者,证书发布时间......
希望它有效!
祝你有美好的一天!

关于php - 检查 SSL 的功能加载时间过长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62937269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com