我正在尝试获取一个工作脚本来检查IIS中的SSL证书是否过期.有许多类似的条目只是简单地获取过期安装的证书列表,但我需要一些额外的逻辑.
我需要知道所有在x天内到期的证书,即A)当前绑定到网站并且B)该网站必须具有"已启动"状态
我收集了一些信息(如下),但我无法将它们关联起来,所以它们只给我我需要的过期证书.为了增加复杂性,我不能简单地在证书主题中查找CN中的站点名称,因为安装了数百个证书,并且同一站点的1个或多个旧证书仍然不常见安装.话虽如此,他们也有同样的主题.我需要比较指纹,但通过简单地指定站点名称来获取指纹证明是困难的.
收集各种相关细节的一些代码如下:
ActiveSites = get-website | where {$_.State -eq "Started"}
$DaysToExpiration = 7
$InstalledCerts = gci cert:\localmachine\my
$ExpiringCerts = $InstalledCerts | Where {(($_.NotAfter - (Get-Date)).Days) -lt $DaysToExpiration}
Run Code Online (Sandbox Code Playgroud) 在Server 2012 R2中遇到CCS的奇怪问题.
在管理控制台中查看存储时,存储中的某些证书无法正确显示.它们的名称左边有一个红色的X,信息列中没有数据,控制台右上角有一条消息说"系统找不到指定的文件".其他人显示得很好.真正奇怪的部分是它们实际上正常运行并且由IIS提供就好了.您还可以在证书库中双击它们并查看所有信息,包括指示"您有一个与此证书对应的私钥"的小消息.
我很好奇这些通配符证书是否有些奇怪,但我绝对没有注意到任何东西.即使它们在技术上有效,但我不喜欢在没有找到答案的情况下将其投入生产的想法.