我们有300多台用于.NET托pipe的Windows服务器,以及这些服务器上导入的大量SSL证书。 我们是否可以使用PowerShell或Python从单个Windows / Linux服务器获取所有服务器的证书到期详细信息?
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 } }'
最简单的方法是使用下面的标志对网站进行简单的curl:
curl -ILv https://yourdomainhere.com
在输出中,你会发现一个过期的string“过期date”,看起来像这样:
* expire date: 2016-05-19 20:59:53 GMT
使用pycurl得到这个工作,以stringforms提取它,然后提取相关数据。 或者,您可以使用下面的python脚本来testing* nix框(这有点粗糙,可以使用调整来接受所有主机/域的检查):
import os os.system("echo|openssl s_client -connect mydomain.com:443 | openssl x509 -noout -dates > ~/testfile.txt")