lunedì 19 ottobre 2026

C# Windows Forms: verificare la scadenza del certificato di un file firmato digitalmente (.p7m)

Quando si lavora con documenti firmati digitalmente, può essere utile verificare se il certificato digitale utilizzato dal firmatario ha superato la propria data di scadenza.

In questo articolo vedremo come effettuare questo controllo utilizzando le classi messe a disposizione dal framework .NET, senza ricorrere a librerie di terze parti.

Verificare la data di scadenza del certificato
.NET mette a disposizione la classe X509Certificate2, che consente di accedere alle informazioni contenute in un certificato X.509, tra cui la data di inizio e di fine validità.

La proprietà NotAfter, in particolare, restituisce la data di fine validità del certificato.

Il seguente frammento di codice mostra come confrontare tale data con quella corrente: 

C#

X509Certificate2 certificato = new X509Certificate2(PercorsoNomeFileP7m)

DateTime oggi = DateTime.Now;

if (oggi > certificato.NotAfter)

{

    MessageBox.Show($"Il certificato è SCADUTO.\nData di scadenza: {certificato.NotAfter}",

        "Certificato Scaduto", MessageBoxButtons.OK, MessageBoxIcon.Error);

    return;

}

 

Nell'esempio, PercorsoNomeFileCertificato rappresenta il percorso del file contenente il certificato X.509.

Se la data corrente è successiva alla data indicata dalla proprietà NotAfter, il certificato viene considerato scaduto.

Nota: il codice mostrato verifica esclusivamente la data di scadenza del certificato. Non controlla, da solo, la validità complessiva del certificato né l'autenticità della firma digitale.

Nessun commento: