Per la sicurezza di un certificato non importa se il certificato è autofirmato, firmato da una CA privata o firmato da una CA pubblica. È importante che l'utente si fidi di questo certificato specifico esplicitamente o si fidi implicitamente affidandosi alla CA che ha emesso il certificato.
Quindi è quasi sicuro se si distribuisce il proprio certificato agli utenti in modo sicuro, in modo che questi utenti importino esplicitamente questo certificato come attendibile. Solo che questo tipo di sistema non è scalabile se si hanno molti utenti ed è per questo che abbiamo il sistema attuale di CA radice pre-attendibili all'interno del browser / sistema operativo.
Attenzione però che quando si distribuisce il proprio certificato autofirmato o la propria CA al client, si potrebbe rendere il client più vulnerabile contro gli attacchi man-in-the-middle. Se il certificato che si importa come attendibile può essere utilizzato per la firma (ad esempio CA: true), questo può essere utilizzato per firmare i certificati per qualsiasi altro sito, ovvero è di fatto una nuova CA radice attendibile. E poiché era esplicitamente affidabile, le misure di sicurezza tipiche come il blocco dei certificati sono disattivate per tutti i certificati firmati da questa CA. Pertanto, se qualcuno compromette il tuo sistema in cui è memorizzata la chiave privata per questo certificato, l'attaccante può montare un uomo trasparente negli attacchi centrali contro tutti gli utenti che si fidano di questo certificato.
Quindi potrebbe essere meglio non importare il certificato come attendibile nell'archivio certificati del browser. Potrebbe essere preferibile connettersi con il browser al proprio sito e ignorare l'avviso per creare un'eccezione permanente, ovviamente dopo aver verificato l'impronta digitale. Con questa eccezione il certificato non è globalmente considerato affidabile dall'utente, ma il trust è limitato al sito specifico in cui è stato utilizzato il certificato. È ancora meglio accertarsi che il certificato non possa essere utilizzato come CA, ovvero CA non sia stato impostato su true.