OK, so this is a script that will allow you to see the expiration date of a site’s SSL certificate.
If the certificate is expired, you will get some more info about the expired certificate.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
$minimumCertAgeDays = 60 $timeoutMilliseconds = 10000 $urls = @( "https://www.pbnet.ro/" ) #disabling the cert validation check. [Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} foreach ($url in $urls) { Write-Host Checking $url -f Green #Line if Web Proxy is used: $WebProxy = New-Object System.Net.WebProxy("http://172.17.77.100:3128",$true) $req = [Net.HttpWebRequest]::Create($url) $req.Timeout = $timeoutMilliseconds #setting proxy: $req.Proxy = $WebProxy try {$req.GetResponse() |Out-Null} catch {Write-Host Exception while checking URL $url`: $_ -f Red} [datetime]$expiration = $req.ServicePoint.Certificate.GetExpirationDateString() [int]$certExpiresIn = ($expiration - $(get-date)).Days $certName = $req.ServicePoint.Certificate.GetName() $certPublicKeyString = $req.ServicePoint.Certificate.GetPublicKeyString() $certSerialNumber = $req.ServicePoint.Certificate.GetSerialNumberString() $certThumbprint = $req.ServicePoint.Certificate.GetCertHashString() $certEffectiveDate = $req.ServicePoint.Certificate.GetEffectiveDateString() $certIssuer = $req.ServicePoint.Certificate.GetIssuerName() if ($certExpiresIn -gt $minimumCertAgeDays) {Write-Host Cert for site $url expires in $certExpiresIn days [on $expiration] -f Green Send-MailMessage -From "Andrei <andrei@pbnet.local>" -To "Andrei <andrei@pbnet.local>" -Subject "$url SSL Certificate test" -SmtpServer smtp.pbnet.pbnet.local -Body "Cert for site $url expires in $certExpiresIn days [on $expiration]" } else {Write-Host Cert for site $url expires in $certExpiresIn days [on $expiration] Threshold is $minimumCertAgeDays days. Check details:`n`nCert name: $certName`nCert public key: $certPublicKeyString`nCert serial number: $certSerialNumber`nCert thumbprint: $certThumbprint`nCert effective date: $certEffectiveDate`nCert issuer: $certIssuer -f Red Send-MailMessage -From "Andrei <andrei@pbnet.local>" -To "Andrei <andrei@pbnet.local>" -Subject "$url SSL Certificate test" -SmtpServer smtp.pbnet.pbnet.local -Body "Cert for site $url expires in $certExpiresIn days [on $expiration] Threshold is $minimumCertAgeDays days. Check details:`n`nCert name: $certName`nCert public key: $certPublicKeyString`nCert serial number: $certSerialNumber`nCert thumbprint: $certThumbprint`nCert effective date: $certEffectiveDate`nCert issuer: $certIssuer" } rv req rv expiration rv certExpiresIn } |
