Monitorizarea automată a certificatelor SSL în Windows Server

Configurare noua (How To)

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?

  1. Scanează magazinul de certificate al computerului (LocalMachine\My)

  2. Identifică certificatele care expiră într-un interval definit (ex. 15 zile)

  3. 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 15 cu numărul de zile cu cât timp înainte vrei să fii anunțat. (Ex: pune 30 dacă 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.ro sau IP-ul serverului de mail intern).

Automatizare

  • Salvează codul de mai sus într-un fișier numit Check-SSL.ps1 (ex: în C:\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.

Tip solutie

Permanent

Voteaza

(1 din 2 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?