2009-11-30 9 views

risposta

55

Basta seguire one del manystep per passo le istruzioni per creare il proprio certificato con OpenSSL, ma sostituire il "Common Name" www.example.com con *.example.com.

Di solito devi tenere un po 'più di denaro pronto per ottenere un certificato per questo.

> openssl req -new -x509 -keyout cert.pem -out cert.pem -days 365 -nodes 
Country Name (2 letter code) [AU]:DE 
State or Province Name (full name) [Some-State]:Germany 
Locality Name (eg, city) []:nameOfYourCity 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:nameOfYourCompany 
Organizational Unit Name (eg, section) []:nameOfYourDivision 
Common Name (eg, YOUR name) []:*.example.com 
Email Address []:[email protected] 

(Siamo spiacenti, il mio preferito howto è un testo tedesco che non ho prontamente disponibile e non riesco a trovare attualmente, quindi i 'molti' collegamenti)

Edit nel 2017: The la risposta originale a questa domanda è del 2009, quando la scelta dei certificati non includeva opzioni completamente automatizzate e gratuite come Let's Encrypt. Al giorno d'oggi (se il livello di certificazione "domain-validated" di Let's Encrypt è sufficiente per il tuo scopo) è banale ottenere certificati individuali per ogni sottodominio. Nel caso in cui sia necessario un livello di attendibilità più elevato rispetto a quello convalidato dal dominio, i certificati jolly sono ancora un'opzione.

Inoltre dal 2017, nota il commento qui sotto, da @ ha9u63ar:

Secondo RFC 2818 sec. 3 utilizzando CN per l'identificazione del nome host non è più raccomandato (deprecato) Subject Alternative Name (SAN) sembra essere la strada da percorrere.

La mia risposta a questo commento: confido che oggigiorno le CA che emettono certificati Wildcard avranno un set di istruzioni corretto. Per una soluzione rapida autofirmata, non mi preoccuperei. D'altra parte, con LetsEncrypt in giro in questi giorni, è passato molto tempo da quando ho creato un certificato autofirmato. Accidenti, questa risposta mostra davvero la sua età.

+1

Posso eseguirlo da qualsiasi host o solo da dove risiedono i miei siti? –

+1

Puoi usarlo su qualsiasi host. Ma se la richiesta va a www.example.net mentre il certificato è per * .example.com (notare la differenza net/com) riceverai il solito avviso di non-matching-certificate. Tuttavia, puoi avere un numero di macchine diverse, una che serve www.example.com, un'altra a.example.com, b.example.com ecc. E tutte le macchine utilizzano lo stesso certificato. Si interrompe solo quando gli si accede con un nome di dominio non corrispondente. –

+3

Credo che funzioni per 'https: // xyz.example.com', ma non per' https: // example.com'. Google per l'estensione SAN (subjectAltName). – mivk