Come ha detto RandomBen, i certificati autofirmati sono generalmente disapprovati per le ragioni che ha spiegato. Ma c'è una situazione in cui stanno bene: se l'insieme di persone che devono inviare dati sensibili al tuo sito Web è piccolo e limitato, sono tutti in qualche modo tecnicamente competenti e sei in grado di comunicare con tutti loro. In tal caso, puoi fornire a ciascuno i dettagli del certificato, quindi può controllare manualmente il certificato quando accede al tuo sito e aggiungere un'eccezione di sicurezza, se del caso.
A titolo di esempio estremo, sul mio VPS personale ho un sottodominio amministrativo, al quale dovrei accedere solo da me. Non ci sarebbero problemi a proteggere quel dominio con un certificato autofirmato perché posso verificare manualmente che il certificato del server utilizzato per proteggere la connessione sia lo stesso che ho installato sul server.
Nei casi in cui un certificato autofirmato non funzionerà o preferiresti averne uno "reale", raccomando Let's Encrypt , un progetto avviato da Internet Security Research Group e supportato dalle principali società Internet, che offre certificati SSL all'indirizzo nessun costo. Possono farlo perché il processo di verifica che usano è completamente automatizzato e in effetti un web server che supporta il loro protocollo ACME (come Caddy , che attualmente uso) può ottenere i certificati da solo. Let's Encrypt non verifica che tu, come persona, sono chi dici di essere; verifica solo che il tuo server web sia in grado di pubblicare contenuti sul dominio a cui afferma. Let's Encrypt è supportato da tutti i principali browser, ma è noto che la verifica è minima, quindi se stai eseguendo qualcosa come un sito di e-commerce o qualcosa in cui le persone invieranno informazioni sensibili, probabilmente dovresti spendere i soldi per ottenere un certificato con un livello superiore di convalida.
Raccomandavo i certificati StartSSL gratuiti di StartCom per le persone che non volevano pagare per la convalida, ma non più. StartCom è stata segretamente acquisita da WoSign nel 2016 e successivamente ha rilasciato certificati illegittimi per diversi domini. Di conseguenza, i principali browser hanno rimosso il supporto per i certificati StartCom. (Per quanto ne so, IE non li ha mai supportati comunque.) In ogni caso, Let's Encrypt è molto più conveniente.