È normale, previsto e in realtà consigliato che i grandi siti usino diversi certificati. Google è enorme e ha molti server in tutto il mondo; DNS e routing sono fatti in modo tale che, in media, le tue richieste a www.google.com
vadano al server più vicino, dove "vicino" si intende nella topologia della rete, che può differire da considerazioni geografiche.
Ogni server con il nome www.google.com
deve essere in grado di utilizzare un certificato con il suo nome (o qualcosa che corrisponde al suo nome, come *.google.com
), e il server deve avere accesso alla chiave privata corrispondente. Tuttavia, se due server geograficamente distanti utilizzano entrambi la stessa chiave privata, allora la chiave privata deve necessariamente aver viaggiato tra loro o da una fonte comune a un certo punto. Più una chiave privata viene duplicata e viaggia, meno "privata" può essere.
È quindi meglio, per quanto riguarda la sicurezza, che ogni server genera la propria coppia di chiavi privata / pubblica e ottiene un certificato specifico per il server. Dal punto di vista di un cliente, è possibile osservare diversi di questi certificati, in particolare se si "sposta" (nel mondo di rete, il tuo ufficio di lavoro e la tua casa possono essere abbastanza distanti l'uno dall'altro).
Altre situazioni che implicano necessariamente modifiche ai certificati sono i rinnovi. I certificati hanno una durata limitata, con una data di "fine validità"; di solito vivono da uno a tre anni. Il rinnovo può riutilizzare o meno la stessa chiave pubblica, ma in ogni caso il nuovo certificato sarà diverso da quello vecchio, se non altro nella data di scadenza. X.509 è progettato per supportare tali aggiornamenti senza problemi. In realtà è progettato per supportare i rinnovi ogni 5 minuti, che è un completo overkill; Convergence cerca di vivere in quel "margine di overkill" (cioè rileva certificati di pesce in virtù del fatto che sono apparentemente rinnovati o cambiati troppo spesso).