Apache SSL VirtualHosts su un singolo IP usando il certificato UCC / SAN


11

Devo ospitare diversi host virtuali Apache con SSL da un singolo IP.

Ora, capisco che, poiché SSL avvolge la richiesta HTTP, non c'è modo di sapere quale host viene richiesto fino a quando una chiave pubblica non viene inviata per prima al client. Ciò essenzialmente interrompe la possibilità di host virtuali SSL che utilizzano un certificato SSL standard.

Ho ottenuto un certificato di comunicazioni unificate (UCC), altrimenti noto come certificato SAN (Subject Alternative Name). Ciò mi consente di fornire lo stesso certificato per più domini.

Vorrei che questo fosse il certificato fornito da Apache per qualsiasi richiesta SSL e quindi Apache risolva l'host virtuale come al solito, una volta stabilita la crittografia.

Come devo configurare Apache per questo? Ho provato a cercare come fare, ma tutto quello che posso trovare sono citazioni che affermano che è possibile, ma senza specificazioni:


wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

Mentre Apache può rinegoziare la connessione SSL in un secondo momento dopo aver visto il nome host nella richiesta (e lo fa), è troppo tardi per scegliere il certificato del server giusto da utilizzare per abbinare il nome host della richiesta durante l'handshake iniziale, causando avvisi / errori del browser sui certificati che hanno il nome host sbagliato in loro.

serverfault.com/questions/48334/apache-virtual-hosts-with-ssl

Per inciso, è possibile avere più host virtuali denominati protetti con SSL su un singolo indirizzo IP - lo faccio sul mio sito Web - ma produce tutti i tipi di avvisi nei log di Apache e avvisi di certificati nel browser. Non lo consiglierei sicuramente per un sito di produzione che deve apparire pulito. -Davido il 31 luglio alle 4:58

www.digicert.com/subject-alternative-name.htm

Host virtuale Più siti SSL su un singolo indirizzo IP. L'hosting di più siti abilitati per SSL su un singolo server richiede in genere un indirizzo IP univoco per sito, ma un certificato con nomi alternativi soggetto può risolvere questo problema. Microsoft IIS 6 e Apache sono entrambi in grado di ospitare siti HTTPS di Virtual Host utilizzando Unified Communications SSL, noto anche come certificati SAN.


Per favore aiuto.

Risposte:


13

Ho provato questo sulla mia istanza di Apache 2.2.14 e ha funzionato bene:

Utilizzare la direttiva NameVirtualHost (to ports.conf):

NameVirtualHost *:443

definisci i tuoi host:

<VirtualHost *:443>
  ServerName www.siteA.com
  DocumentRoot "/opt/apache22/htdocs/siteA"
  SSLCertificateFile "/path/to/my/cert"
  SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>
<VirtualHost *:443>
  ServerName www.siteB.com
  DocumentRoot "/opt/apache22/htdocs/siteB"
  SSLCertificateFile "/path/to/my/cert"
  SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>

Ho usato questo link come risorsa.


1
la risposta è corretta. Una cosa che mi ha fatto inciampare per un tempo LOOOONNNNNNGGGGG era che avevo un refuso dove avevo <Virtual *:433>... la porta corretta è 443! Uh, ore della mia vita perse su questo ... Spero che il mio dolore non sia stato vano e questo aiuti qualcuno ...
Nick P.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.