Quindi sto implementando il blocco dei certificati su iOS e si consiglia di controllare la catena di certificati utilizzando i valori hash della chiave pubblica.
La logica di questo risiede nel fatto che ci è stato detto che il rinnovo del certificato del server manteneva la stessa chiave pubblica. In quanto tale, il certificato sul server potrebbe essere rinnovato alla scadenza e tale rinnovo non avrebbe alcun impatto sull'app.
IOW, non avrei bisogno di aggiornare l'app con un nuovo certificato.
Nota che i certificati in questione sono firmati da una CA pubblica (Digicert).
Attualmente aggiriamo il problema inserendo il certificato intermedio che ha firmato il certificato foglia (durata maggiore). Altrettanto ovvio, è un po 'meno sicuro che attaccare alla foglia.
Tuttavia, ho riscontrato alcuni commenti che implicano che il rinnovo di un certificato foglia crea una nuova chiave pubblica. Soprattutto se tale rinnovo viene effettuato generando una nuova CSR.
Quindi qual è?
O per riformulare la domanda:
Quando ho installato i certificati su un server, in genere l'ho fatto creando un CSR di rinnovo e assegnandolo alla CA. Quando la CA mi fornisce un nuovo certificato (rinnovato) e lo installo, avrà la stessa chiave pubblica del vecchio certificato?
Se la risposta è sempre: sì, allora sto bene. Se la risposta è no, allora ho bisogno di fare qualcos'altro.
E se la risposta è un "forse" definitivo, allora sono praticamente sulla stessa barca di un no.