检查公司网站能否正常打开和检查SSL证书是否过期的重要性不容忽视。公司网站众多, 人工一个个去检查太费时费力, 所以用定时任务跑代码去检查;


1 检查公司网站能否正常打开

对于一个企业来说,网站是其在线形象和客户联系企业的主要途径。如果网站无法正常打开,不仅会影响企业的形象,还会导致潜在客户的流失。因此,定期检查公司网站能否正常打开是非常重要的。

如果网站无法正常打开,可能是由于多种原因引起的,例如服务器故障、网络问题、代码错误等。通过检查网站的状态和日志,可以确定问题的原因并采取相应的解决措施,以确保网站的正常运行。


2 检查SSL证书是否过期

SSL证书是用于加密网站数据传输的一种安全认证,可保护客户提交的个人信息。如果SSL证书过期,网站将不再受到保护,客户和网站之间的数据传输将不再安全。

如果SSL证书过期,网站可能会显示不安全警告或被阻止访问。这将对网站的信任度和用户体验产生负面影响。此外,如果网站的数据传输不受保护,黑客可能会窃取敏感信息并利用它们进行恶意活动。

因此,定期检查SSL证书是否过期是非常重要的。如果SSL证书即将过期,需要及时更新证书以确保网站的安全性。同时,还应备份旧的SSL证书以备不时之需。


代码如下: 

function urlIsOpen($url){
    $data = @get_headers($url, true);
    if($data && isset($data[0]) && $data[0]='HTTP/1.1 200 OK') return true;
    else return false;
}

function hostSsl($url){
    $endTime = '';
    $host = parse_url($url, PHP_URL_HOST);
    $context = stream_context_create(['ssl' => [
        'capture_peer_cert' => true,
        'capture_peer_cert_chain' => true,
        ],
    ]);
    $client = @stream_socket_client("ssl://".$host.":443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);

    if(is_resource($client)){
        $params = stream_context_get_params($client);
        $cert_info = openssl_x509_parse($params['options']['ssl']['peer_certificate']);
        $endTime = $cert_info['validTo_time_t'];  // 结束时间
        // validFrom_time_t 开始时间 
    }

    return $endTime;
}

// 测试
$url = 'https://cn.bing.com/search?q=1234566';
$url = 'http://www.baidu9999.com/';

echo $url.'<br>';
if(urlIsOpen($url))  echo '可以正常打开';
else echo '打不开';
echo '<br>';

if($endTime = hostSsl($url))   echo 'ssl证书正常, 到期时间: '. date("Y-m-d H:i:s", $endTime);
else echo 'ssl证书异常, 请检查';