Situatie
O problemă comună pentru orice SysAdmin care gestionează servere Windows (IIS, Exchange sau RDS) este expirarea neașteptată a certificatelor SSL. Nimic nu arată mai neprofesionist decât un mesaj de tip “Your connection is not private” afișat clienților sau colegilor.
Windows nu oferă o alertă nativă pentru asta, așa că am pregătit un script de PowerShell care verifică automat store-ul de certificate și te avertizează înainte de expirare.
Ce rezolvă această soluție?
-
Scanează magazinul de certificate al computerului (
LocalMachine\My) -
Identifică certificatele care expiră într-un interval definit (ex. 15 zile)
-
Afișează un raport vizual în consolă sau trimite o alertă prin e-mail.
Solutie
Pasi de urmat
*CONFIGURARE
$zilePrag = 15
$emailDestinatar = “admin@domeniu.ro”
$emailExpeditor = “server-alerts@domeniu.ro”
$smtpServer = “smtp.domeniu.ro”
# ——————-
$dataExpirare = (Get-Date).AddDays($zilePrag)
*Extragem certificatele care expiră în intervalul setat
$certExpirate = Get-ChildItem -Path Cert:\LocalMachine\My |
Where-Object { $_.NotAfter -ne $null -and $_.NotAfter -lt $dataExpirare -and $_.NotAfter -gt (Get-Date) } |
Select-Object Subject, NotAfter, Thumbprint, @{Name=”ZileRamase”; Expression={($_.NotAfter – (Get-Date)).Days}}
if ($certExpirate) {
Write-Host “⚠️ ATENȚIE: Au fost găsite certificate care expiră curând!” -ForegroundColor Yellow
$raport = $certExpirate | Format-Table -AutoSize | Out-String
Write-Host $raport
Opțional: Trimitere E-mail (Decomentează liniile de mai jos dacă ai SMTP configurat)
# Send-MailMessage -To $emailDestinatar -From $emailExpeditor -Subject “Alerta SSL: Expirare certificate pe $($env:COMPUTERNAME)” -Body $raport -SmtpServer $smtpServer
} else {
Write-Host “✅ Toate certificatele sunt valide pentru cel puțin $zilePrag zile.” -ForegroundColor Green
}
Personalizarea Scriptului!
-
$zilePrag = 15-
Modifică numărul
15cu numărul de zile cu cât timp înainte vrei să fii anunțat. (Ex: pune30dacă vrei o alertă cu o lună înainte).
-
-
$emailDestinatar = "admin@domeniu.ro"-
Înlocuiește adresa dintre ghilimele cu adresa ta de e-mail unde vrei să primești alerta.
-
-
$emailExpeditor = "server-alerts@domeniu.ro"-
Aceasta este adresa care va apărea la „From”. De regulă, se pune o adresă de tip noreply sau numele serverului.
-
-
$smtpServer = "smtp.domeniu.ro"-
Cea mai importantă setare: Aici trebuie să treci adresa serverului de mail al companiei tale (ex:
smtp.office365.com,mail.yourprovider.rosau IP-ul serverului de mail intern).
-
Automatizare
-
Salvează codul de mai sus într-un fișier numit
Check-SSL.ps1(ex: înC:\Scripts\). -
Deschide Task Scheduler și creează un New Task.
-
La tab-ul Triggers, adaugă un trigger Daily (recomandat ora 08:00).
-
La tab-ul Actions, alege Start a program:
-
Program/script:
powershell.exe -
Add arguments:
-ExecutionPolicy Bypass -File "C:\Scripts\Check-SSL.ps1"
-
-
Bifează la General: Run whether user is logged on or not și Run with highest privileges.
Leave A Comment?