乐趣区

关于linux:三种方法检查ssl证书

之前,有一个域名应用了网上收费的 ssl 证书,而后想在该证书过期后更换为 Let’s encrypt 的收费证书,便想查问下该域名 ssl 证书还剩多少天过期。

查问证书到期工夫的办法还是很简略的,以下应用 sslforfree.com 这个域名进行测试,上面简略的记录一下步骤。

办法一:间接浏览器上查看
该办法的前提是你的域名曾经指向了 web 服务器,在浏览器上能够失常拜访。

首先应用浏览器拜访你的站点域名,而后单击地址栏下面的锁图标进行查看.

办法二:在服务端应用 Openssl 工具进行查看
因为我服务端是搭建在 Centos 上,所以用 xshell 或者 putty 工具登录后,进入证书目录,应用 openssl 命令进行查看:

cd /usr/ssl/cert

openssl x509 -in signed.crt -noout -dates

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

办法三:应用 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 信息参数很多,敢趣味的能够打印进去看下

参考链接:
how to check ssl certificate

退出移动版