Come fornitore di hosting, vorrei rendere il processo di generazione di un certificato per il dominio di un cliente il più comodo possibile.
Stavo pensando di creare una pagina web in cui chiunque potesse:
- genera un CSR per un determinato nome host dalla nostra chiave privata
- togli quella CSR e torna da noi con un certificato
C'è qualche pericolo nel permettere a chiunque di generare potenzialmente migliaia di CSR basati sulla nostra chiave privata?
Affrontare alcune preoccupazioni / domande:
I think the real danger here is re-using the same private key for a lot of domains.
È davvero diverso (dal punto di vista della sicurezza, non della gestione) che avere un singolo certificato con molte SAN? Ad esempio, il certificato presentato dalla nostra CDN Cloudflare ha queste SAN:
DNS:ssl2917.cloudflare.com, DNS:*.app.com.pk, DNS:*.boldstatementmarketing.com, DNS:*.lacasadivetro.com, DNS:forospyware.com, DNS:*.reportcrowd.com, DNS:*.vladtv.com, DNS:*.1bse.com, DNS:*.discourse.org, DNS:*.forospyware.com, DNS:*.gossipbrigade.com, DNS:*.gsmcodigos.com, DNS:*.is.gl, DNS:*.madepal.co, DNS:*.mejorando.la, DNS:*.oceanvillageresort.com, DNS:*.pinside.com, DNS:*.ratelossprogram.com, DNS:*.soopermexican.com, DNS:*.tequierocali.org, DNS:1bse.com, DNS:app.com.pk, DNS:boldstatementmarketing.com, DNS:discourse.org, DNS:gossipbrigade.com, DNS:gsmcodigos.com, DNS:is.gl, DNS:lacasadivetro.com, DNS:madepal.co, DNS:mejorando.la, DNS:oceanvillageresort.com, DNS:pinside.com, DNS:ratelossprogram.com, DNS:reportcrowd.com, DNS:soopermexican.com, DNS:tequierocali.org, DNS:vladtv.com
Is there are realistic scenario in which you would have reason to believe the key of one site has leaked, while the keys of the other sites remain secure.
Non proprio. Se un cliente che utilizza una di queste chiavi richiede di spostare il suo sito, non consegneremmo la chiave.
You should be generating a new private key for each CSR you generate.
Giusto, dovremmo. Questo è un caso di trading off-convenience (da parte nostra) per sicurezza. Per le banche, diavolo no. Siti del forum? Forse ne vale la pena.
What you really need to think about in your setup is integrity of the CSR. The customers need to be absolutely certain, that the public key in the CSR they have signed is indeed the correct public key.
A pensarci bene, l'opzione migliore qui è probabilmente quella di rinunciare alla necessità di generare un CSR ... potremmo semplicemente distribuire un singolo CSR a tutti e fargli firmare con il nome host che preferiscono (simile a ciò che startssl fa - al momento della firma del CSR buttano via il nome host richiesto e usano ciò che inserisci sulla loro pagina web.
Non so se tutte le CA (qualsiasi?) lo faranno, ma è un'opzione.