如何检查 Windows 2008/2012 服务器上部署的许多 SSL 证书的到期详情

如何检查 Windows 2008/2012 服务器上部署的许多 SSL 证书的到期详情

我们有 300 多台用于 .NET 托管的 Windows 服务器,并在这些服务器上导入了大量 SSL 证书。我们可以使用 PowerShell 或 Python 从单个 Windows/Linux 服务器中提取所有服务器的证书到期详细信息吗?

答案1

Get-ChildItem cert:\LocalMachine\My将列出所有已安装的机器证书。

要对远程服务器执行相同操作,请使用远程处理:

Invoke-Command -ComputerName $servername -ScriptBlock {Get-ChildItem cert:\LocalMachine\My}

或所有服务器:

$certs = Get-ADComputer -SearchBase 'ou=servers,dc=something,dc=com' -filter *
    | % { Invoke-Command -ComputerName $_.name -ScriptBlock
        { Get-ChildItem cert:\LocalMachine\my }
    }'

答案2

最简单的方法是使用以下标志对网站进行简单的卷曲:

curl -ILv https://yourdomainhere.com

在输出中,你会发现一个过期字符串“expire date”,如下所示:

*    expire date: 2016-05-19 20:59:53 GMT

使用 pycurl 使其工作,将其作为字符串提取,然后提取相关数据。或者,您可以使用以下用于 *nix 框的 python 脚本进行测试(它有点粗糙,可以使用调整来接受所有主机/域进行检查):

import os
os.system("echo|openssl s_client -connect mydomain.com:443 | openssl x509 -noout -dates > ~/testfile.txt")

相关内容