如何查看SSL证书的过期时间

2023-12-20 14:58:22 2756

如何查看证书的过期时间

查看证书过期时间很多,这里简单介绍三种方式:

方法一:直接浏览器上查看

该方法的前提是你的域名已经指向了 web 服务器,在浏览器上可以正常访问。

首先使用浏览器访问你的站点域名,然后单击地址栏上面的锁图标进行查看:

image-20231220145438607.png

image-20231220145523651.png

方法二:在服务端使用 Openssl 工具进行查看

由于我服务端是搭建在 Centos 上,所以用 xshell 或者 putty 工具登录后,进入证书目录,使用 openssl 命令进行查看:

# cd /usr/ssl/cert

# openssl x509 -in www.landui.com -noout -dates

image.png

上面改成你自己证书的所在目录,证书名称也改成你自己服务端上证书的名称。

方法三:使用 php 代码方法进行查看

如果你有多个可访问的域名,那么使用代码的方法进行查看就会容易很多,省得一个一个手动查看。下面贴上代码:

/**

 * 获取证书有效期

 */

public function getValidity(){

    $domain = "sslforfree.com";

    $context = stream_context_create(array("ssl" => array("capture_peer_cert_chain" => true)));

    $socket = stream_socket_client("ssl://$domain:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);

    $context = stream_context_get_params($socket);

    foreach ($context["options"]["ssl"]["peer_certificate_chain"] as $value) {

        //使用openssl扩展解析证书,这里使用x509证书验证函数

        $cerInfo = openssl_x509_parse($value);

        if(strpos($cerInfo['name'],$domain)) {

            echo  "start:".date("Y-m-d",$cerInfo['validFrom_time_t'])."<br/>";

            echo "end:".date("Y-m-d",$cerInfo['validTo_time_t']);

        }

    }

}

输出内容:

start:2018-04-06 end:2018-07-05 上面的 $cerInfo 信息参数很多,敢兴趣的可以打印出来看下

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: