Nella mia applicazione, utente umano accetta il certificato X.509 del server , verificando l'impronta digitale durante la prima connessione. L'impronta digitale è memorizzata nel software client . Alle connessioni successive, solo quel particolare certificato è accettato dal client .
Se il server rinnova il proprio certificato, l'impronta digitale naturalmente non corrisponde più e l'utente deve verificare e accettare nuovamente la nuova impronta digitale.
Voglio rilassare questa limitazione e accettare questo certificato e anche qualsiasi rinnovo (forse anche rekey ) di esso.
Il certificato del server viene emesso da una CA, che è attendibile dal software client. Quindi il mio nuovo assegno dal lato del cliente sarà come:
- Verificare che l'impronta digitale corrisponda a quella registrata. Accetta la connessione se sì.
- Verificare che il certificato sia emesso da una CA attendibile. Rifiuta la connessione se non.
- Verifica se questo è un certificato precedente rinnovato, accetta la connessione se sì, rifiuta altrimenti.
Domanda: come può essere implementato l'ultimo controllo? Come posso sapere che un certificato C2 è in realtà un rinnovo (o rekey) di un altro certificato C1?