Perché dovrei acquistare un certificato SSL per il dominio personalizzato?

3

Dopo aver letto gli articoli Heroku, le domande Stack Overflow e le guide all'integrazione dei pagamenti Stripe, il consiglio generale è che dovrei acquistare un certificato SSL per il mio dominio personalizzato che punta alla mia app Heroku.

Qualcuno può offrire una spiegazione o un'altra risorsa per aiutarmi a capire perché ho bisogno di un certificato SSL?

Comprendo che SSL crittografa i dati trasmessi, ma se Heroku fornisce SSL, allora dove mi manca la crittografia?

Una semplice spiegazione sarebbe che link inoltra tutti i dati trasmessi al link , quindi qualcuno potrebbe intercettare i dati su quella "gamba" della catena di routing DNS?

    
posta sealocal 17.01.2015 - 00:50
fonte

3 risposte

8

Paghi una autorità di certificazione (CA) a firmare un certificato che certifica che una determinata chiave pubblica corrisponde a un particolare nome host che controlli.

Non è necessario un certificato firmato per ottenere la riservatezza tra te e alcuni server di destinazione. Hai solo bisogno della chiave pubblica del tuo partner di comunicazione.

Il problema fondamentalmente difficile che un certificato firmato risolve non è riservatezza ma identità . Supponiamo che un cliente tenti di parlare con example.com . Il cliente si connette ad alcuni server e quel server fornisce una chiave pubblica per le comunicazioni riservate. Se la chiave non è firmata da un'autorità fidata, tuttavia, come fai a sapere che il server con cui stai parlando è in realtà example.com ?

Per ottenere un certificato firmato, vai a un'autorità di certificazione e fornisci una chiave pubblica, un nome host e prove sufficienti che sei l'operatore del nome host. Se la CA è soddisfatta delle tue prove, rilascia un certificato firmato che collega la tua chiave pubblica al tuo nome host, che chiunque può verificare. Sulla base di tale certificato, l'utente apprende che la CA (di cui l'utente si fida già) asserisce un abbinamento tra la chiave pubblica ricevuta e il nome dell'host a cui stanno cercando di parlare.

Non c'è modo per il sistema di un utente di sapere che example.com e myapp.herokuapp.com sono lo stesso servizio. (Confrontare gli indirizzi IP non è utile, perché più siti possono essere ospitati dallo stesso IP, variando il contenuto dall'intestazione della richiesta Host .) I nomi degli host sono diversi, quindi è necessario un certificato separato per ciascun nome.

È possibile che tu agisca come se fossi CA e produci un certificato autofirmato. Tuttavia, chiunque può produrre un certificato autofirmato, quindi non fornisce alcuna prova di identità. Il tuo sistema operativo ha un elenco di CA attendibili, che generalmente consideriamo discernere quando firmano i certificati. Quando un utente vede un certificato firmato da una CA attendibile, l'utente può essere ragionevolmente sicuro che la CA ha fatto la dovuta diligenza nel verificare che la chiave pubblica sia quella corretta per quel dominio.

    
risposta data 17.01.2015 - 02:25
fonte
3

Puoi generare il tuo certificato e funzionerà perfettamente. Il motivo per cui ne acquisti uno invece di crearne uno è che i certificati di CA ben noti non generano un errore nel browser client che indica che l'autorità di certificazione della firma è sconosciuta e non affidabile.

    
risposta data 17.01.2015 - 03:05
fonte
3

Questo stato di cose (quando devi tossire per un certificato) non durerà a lungo. C'è un'iniziativa molto promettente Let's Encrypt che fornirà certificati gratuiti in modalità automatica. È destinato a partire verso la metà del 2015. È sponsorizzato da Mozilla, EFF, Akamai e Cisco. Quindi, avrai il meglio di due mondi: un certificato non autofirmato, verificato dall'identità che funzionerà almeno in Firefox, e uno gratuito, senza problemi.

La verifica dell'identità si baserà sul protocollo ACME .

    
risposta data 17.01.2015 - 20:07
fonte

Leggi altre domande sui tag