Cos'è un certificato autofirmato e come crearlo
Un certificato autofirmato è un certificato digitale emesso e firmato dall'entità che lo utilizza, non da un'Autorità di Certificazione (CA). Sebbene economico e rapido da creare, non è raccomandato per siti pubblici o dati sensibili a causa di rischi di sicurezza, mancanza di revoca e assenza di validazione esterna. È più adatto per ambienti di test interni. I rischi includono avvisi del browser, vulnerabilità e cifratura compromessa. La creazione richiede una chiave privata, una richiesta di firma (CSR) e l'emissione del certificato. Considera CA affidabili per maggiore sicurezza.
Indice
Aggiornato: 4 dicembre 2023
Un certificato SSL/TLS autofirmato è un certificato digitale non firmato da un'autorità di certificazione (CA) di fiducia. I certificati autofirmati sono considerati diversi dai tradizionali certificati firmati da CA perché sono creati, emessi e firmati dall'azienda o dallo sviluppatore responsabile del sito web o del software associato al certificato, anziché da una CA affidabile.
Ad alto livello, questi certificati autofirmati si basano sulla stessa architettura crittografica a coppia di chiavi private e pubbliche utilizzata nei certificati X.509. Tuttavia, non hanno la convalida di una CA di terze parti affidabile, come Sectigo, il che significa che il certificato non è collegato a una CA principale o a un certificato intermedio come quelli emessi da una CA affidabile. Questa mancanza di convalida indipendente nel processo di emissione crea un rischio aggiuntivo, che è il problema dell'utilizzo di certificati autofirmati. Questi certificati non sono considerati sicuri per i siti web e le applicazioni rivolte al pubblico e sono in genere utilizzati solo negli ambienti interni di sviluppo e di test.
Scopo di un tipo di certificato autofirmato
Sebbene possano essere rischiosi, i certificati autofirmati hanno la loro utilità e presentano alcuni vantaggi. Sono gratuiti, facili da richiedere per gli sviluppatori, criptano i dati con gli stessi metodi dei certificati SSL a pagamento, non scadono e non possono essere revocati. Tuttavia, quando si parla di sicurezza complessiva, i rischi sono in genere superiori ai benefici.
Il vantaggio principale di un certificato SSL autofirmato è che è disponibile a costo zero e può essere richiesto facilmente da qualsiasi sviluppatore. Inoltre, le organizzazioni hanno il vantaggio di sapere che i certificati SSL autofirmati criptano i dati in entrata e in uscita utilizzando gli stessi metodi degli altri certificati SSL/TLS a pagamento.
Le organizzazioni hanno il vantaggio di sapere che i certificati SSL autofirmati criptano i dati in entrata e in uscita utilizzando gli stessi metodi di altri certificati SSL/TLS a pagamento.
I certificati autofirmati non scadono e non devono essere rinnovati dopo un determinato periodo di tempo, come invece richiede un certificato CA. Sebbene questo sembri conveniente, è una delle maggiori preoccupazioni, in quanto significa che non possono rispettare gli aggiornamenti di sicurezza in risposta alle vulnerabilità scoperte, né soddisfare l'agilità dei certificati necessaria per proteggere l'azienda moderna. Pertanto, questo metodo di autenticazione è raramente consigliato.
Inoltre, la revoca dei certificati non è possibile con i certificati autofirmati. Ciò espone la crittografia utilizzata a minacce esterne nel caso in cui il certificato venga dimenticato o rimanga su sistemi aperti ad attori malintenzionati. I rischi associati a questi certificati spesso superano i benefici, poiché la sicurezza informatica è fondamentale per qualsiasi organizzazione.
Rischi ed errori associati ai certificati autofirmati
I certificati SSL autofirmati presentano numerosi avvisi di sicurezza e preoccupazioni, motivo per cui non sono quasi mai consigliati.
Avvisi di sicurezza a comparsa
Ogni volta che un utente visita un sito che utilizza questo tipo di certificato (cosa che non è mai consigliata su un sito rivolto al pubblico), viene immediatamente visualizzato un pop-up di avviso di sicurezza che mostra errori come “error_self_signed_cert” o “err_cert_authority_invalid” che richiedono all'utente di confermare la volontà di procedere. Questi errori vengono segnalati dal browser dell'utente e non dal sito web stesso, aggiungendo ulteriore legittimità alle preoccupazioni dell'utente e introducendo un ulteriore passaggio alla visita del sito web. Nessun browser moderno si fida dei certificati autofirmati e il browser non visualizza il simbolo del lucchetto o lo stato HTTPS per il nome di dominio.
Questi avvisi creano paura e disagio nei visitatori di un sito web. Danno l'impressione che il sito possa essere compromesso e che non protegga adeguatamente i loro dati. I visitatori saranno tentati di evitare questi siti web e di visitare quelli concorrenti che non presentano avvisi di sicurezza al momento della visita. È comprensibile che i visitatori difficilmente condivideranno informazioni personali o riservate su un sito web che, secondo il loro browser di fiducia, potrebbe essere privo di misure di sicurezza adeguate.
Nessun aggiornamento o revoca del certificato di sicurezza
Come già detto, i vostri certificati non devono essere rinnovati perché non scadono mai. Ciò significa che non vengono mai aggiornati o modificati per risolvere le vulnerabilità o soddisfare i più recenti standard di sicurezza. Ciò rende il vostro ambiente vulnerabile agli hacker e agli attacchi informatici.
Allo stesso modo, poiché non possono essere revocati, i vecchi certificati possono vivere negli ambienti senza che il personale lo sappia. Questo può portare a un aumento del rischio di sfruttamento dei certificati. Un metodo popolare per sfruttare un certificato autofirmato è l'attacco man-in-the-middle, che consente di vedere i dati condivisi tramite il protocollo TLS/SSL, esponendo i visitatori al furto di identità e all'intrusione nel sistema.
Errore della catena di certificati con certificato autofirmato
Se uno sviluppatore o un team IT sta cercando di utilizzare un certificato SSL autofirmato, potrebbe imbattersi internamente nell'errore “certificato autofirmato nella catena di certificati” se si utilizza OpenSSL. Nelle comunicazioni SSL/TLS, la fiducia viene stabilita attraverso una catena di certificati, che riconducono a una CA radice affidabile. Quando si incontra un certificato autofirmato in questa catena, si rompe il modello di fiducia, poiché questo tipo di certificato non è intrinsecamente affidabile.
I certificati emessi da una CA fidata hanno una catena di fiducia che risale a tale CA e ne garantisce la legittimità. Un certificato autofirmato, invece, è creato e firmato dall'entità che lo presenta, non da una CA fidata. Per questo motivo, non sono automaticamente affidabili, in quanto non vi è alcuna convalida esterna dell'identità dell'entità. Questo rappresenta un rischio per la sicurezza, in quanto potrebbe consentire a un aggressore di presentare un certificato fraudolento, ingannando potenzialmente i client per stabilire una connessione sicura con un server dannoso.
Questo errore può essere aggirato, ma viene fornito come misura di sicurezza per segnalare il rischio potenziale associato a un certificato autofirmato.
Dovrei usare un certificato SSL autofirmato?
Scegliendo questo tipo di certificato SSL, siete essenzialmente da soli. Ciò significa che non avete il supporto di un'autorità di certificazione affidabile e l'applicazione dei più recenti metodi crittografici necessari per garantire l'autenticazione e la crittografia dei dati, dei dispositivi e delle applicazioni.
Questi certificati comportano molti rischi, soprattutto in caso di utilizzo pubblico. Sono incredibilmente rischiosi per un sito web che gestisce informazioni private, come dati sanitari, fiscali o finanziari. L'esposizione di queste informazioni non solo danneggia la fiducia del marchio, ma può danneggiare finanziariamente un'organizzazione attraverso multe e sanzioni in base alle normative sulla privacy applicabili. Per questi motivi, non sono mai consigliati su siti web o applicazioni rivolte al pubblico.
Molti pensano che l'uso di certificati autofirmati internamente non comporti alcun rischio se distribuiti in aree come i portali dei dipendenti o i siti di comunicazione, ma ciò non è vero. I certificati autofirmati causano comunque avvisi al browser e alla sicurezza. Poiché questi avvisi possono essere ignorati, le organizzazioni spesso istruiscono i propri dipendenti a farlo. La sicurezza del sito interno è assicurata, quindi il danno diretto è minimo. Tuttavia, ciò può inavvertitamente indurre i dipendenti ad abituarsi a ignorare questo tipo di avvisi. Questo tipo di comportamento può esporre l'organizzazione a maggiori rischi e opportunità di vulnerabilità.
Come creare un certificato autofirmato
Sebbene i certificati autofirmati siano sconsigliati a causa dei rischi per la sicurezza che comportano, l'impostazione del file di configurazione e il completamento del processo di emissione sono semplici, a seconda dell'ambiente in cui si opera, come i server Apache o Ubuntu Linux.
Generare una chiave privata
Per creare il certificato SSL sono necessari un file di chiave privata e una richiesta di firma del certificato (CSR). Il processo inizia con la richiesta di una chiave privata alla CA. Le chiavi private sono chiavi crittografiche generate con algoritmi come RSA ed ECC. Le chiavi RSA sono uno dei sistemi di crittografia più antichi per questo processo e sono supportate da molte piattaforme.
Sebbene i certificati autofirmati non siano raccomandati, ecco un esempio di codice per generare una chiave con il seguente comando:
openssl genrsa -aes256 -out nome-server.pass.key 4096
Il comando richiede una passphrase. La passphrase può essere utilizzata dalla CA per autenticare il proprietario del certificato se il certificato deve essere revocato per qualsiasi motivo.
Generare un CSR
Una volta generato, il file della chiave privata si troverà nella directory corrente come servername.key e sarà usato per generare il CSR. Ecco un esempio di codice per la richiesta di firma del certificato per un certificato autofirmato:
openssl req -nodes -new -key servername.key -out servername.csr
Successivamente, è necessario inserire diverse informazioni, tra cui l'organizzazione, l'unità organizzativa, il nome del Paese, lo Stato, la località e il nome comune. Il nome comune è in genere il nome di dominio (dns) o l'indirizzo IP della sede.
Dopo aver inserito queste informazioni, nella directory corrente si troverà un file servername.csr con il file della chiave privata servername.key.
Rilasciare un certificato
Infine, viene generato un nuovo certificato (.crt) dai file server.key (file della chiave privata) e server.csr. Il certificato generato può essere un certificato radice o un certificato intermedio, a seconda dell'applicazione della catena di fiducia. Ecco un esempio di comando per generare un nuovo certificato:
openssl x509 -req -sha256 -days 365 -in servername.csr -signkey servername.key -out servername.crt
Analogamente al passo precedente, il file servername.crt verrà trovato nella directory corrente.
Evitare i rischi
I certificati autofirmati possono creare rischi significativi quando vengono distribuiti in qualsiasi ambiente, interno o pubblico, e pertanto questo metodo non è consigliato.
Contattate Sectigo per saperne di più sui nostri certificati SSL/TLS affidabili e sulla nostra piattaforma di gestione del ciclo di vita dei certificati.
Scopri di più? Contattateci per prenotare una demo di Sectigo Certificate Manager!
Messaggi relativi:
7 diversi tipi di certificati SSL spiegati
Cosa succede quando il vostro certificato SSL scade e come rinnovarlo