Che tipo di certificato devo avere per poter firmare i miei certificati di sottodominio?

10

Stiamo creando un'applicazione basata sul Web che verrà installata nelle intranet come immagine di macchina virtuale (inviamo all'utente un CD con l'immagine della macchina virtuale, l'utente la esegue in VMWare / VirtualBox / ...).

Vogliamo proteggere il frontend dell'applicazione usando HTTPS. Abbiamo pensato di ottenere un singolo certificato (emesso da una CA conosciuta) per il dominio app.ourdomain.com e installarlo su tutte le istanze, ma ciò significa ovviamente che è possibile smontare un'installazione, estrarre la chiave privata e creare un uomo nel mezzo attacco su qualche altra installazione (a condizione che abbia accesso alla sua rete). Anche se questo è uno scenario improbabile, vorremmo comunque evitare di correre il rischio.

È possibile ottenere un certificato con caratteri jolly che ci consentirebbe di firmare i nostri sottodomini, in modo da poter emettere certificati app1.ourdomain.com , app2.ourdomain.com , ... e sarebbero accettati dai browser degli utenti? (non abbiamo controllo sui browser degli utenti) Se sì, come vengono chiamati questi certificati?

In caso contrario, esiste un altro modo per proteggere gli utenti l'uno dall'altro?

UPDATE : ho trovato un domanda simile su serverfault quindi sembra che sia tecnicamente possibile, ma" difficilmente troverai CA che possa fornirti tale certificato ". Mi piacerebbe ancora sapere se esiste una CA che emette tali certificati?

    
posta johndodo 06.08.2012 - 14:58
fonte

2 risposte

5

I certificati jolly , ovvero i certificati che contengono un nome con un " * " al suo interno, non sono una soluzione per te. Un certificato jolly è un certificato che i client accettano come "corrispondenti" a diversi nomi di server: un certificato che contiene " *.example.com " sarà valido per " foo.example.com ", " bar.example.com " e così via. Questo è esattamente ciò che non vuoi: non vuoi che la chiave privata e il certificato contenuti in un'istanza del tuo prodotto siano validi per un'altra istanza con un nome distinto.

Per ottenere ciò che stai cercando di fare, devi ottenere un certificato CA , contrassegnato come tale con un'estensione Basic Constraints con il flag cA impostato su TRUE . Ciò consentirebbe di emettere certificati da soli e i certificati continuerebbero a connettersi alla CA radice da cui è stato ottenuto il proprio certificato CA.

Le CA esistenti e implementate possono venderti un tale certificato, ma sarà costoso:

  • La CA esistente ha un modello di business che riassume come "vendere un sacco di certificati individuali". Se produci molti certificati senza l'aiuto della CA, allora sta perdendo affari ... e vorrai riavere i suoi soldi.

  • Quella CA esistente ha una grande risorsa una , ovvero la sua chiave pubblica di root è inclusa nei browser Web e nei sistemi operativi di tutto il mondo. I fornitori di sistemi operativi / browser accettano di farlo solo se la CA offre forti garanzie che sia seria e rilascerà certificati solo a entità debitamente identificate. Quando tale CA delega questa potenza di emissione a una CA secondaria, tende a richiedere lo stesso livello di gravità. Quindi avresti bisogno di hardware piuttosto strong ( HSM in un bunker) e procedure pesanti.

In una vita passata, ho fatto un simile accordo con GlobalSign . È stato circa 10 anni fa, non so se offrono ancora tali offerte.

Un'altra strategia è lasciare che i tuoi clienti affrontino il problema. Documenta come inserire un certificato e inserire la chiave nell'applicazione, e il gioco è fatto. Alcuni clienti useranno la propria CA (non si ha il controllo sui browser degli utenti, ma il cliente potrebbe avere tale controllo). Alcuni compreranno un certificato altrove.

Ad ogni modo, è necessario consentire una tale configurazione manuale del certificato, se solo per consentire il rinnovo quando scade il certificato.

    
risposta data 13.01.2013 - 20:47
fonte
3

Non credo che ci sia un modo per farlo a meno che tu non voglia pagare grandi somme a una CA per far sì che ne emetta una che possa firmare qualsiasi dominio. Il mio consiglio è quello di acquistare uno standard SSL per ciascuno di essi, costano circa $ 10 a pezzo. Puoi ottenerne uno a Namecheap per circa $ 8,00 . Anche globessl per qualche centesimo in più.

    
risposta data 06.08.2012 - 15:21
fonte

Leggi altre domande sui tag