_default_ VirtualHost si sovrappongono sulla porta 443, la prima ha la precedenza


64

Ho due ruby ​​su rails 3 applicazioni in esecuzione sullo stesso server, (ubuntu 10.04), entrambi con SSL.

Ecco il mio file di configurazione di Apache:

<VirtualHost *:80>
ServerName example1.com
DocumentRoot /home/me/example1/production/current/public
</VirtualHost>
<VirtualHost *:443>
ServerName example1.com
DocumentRoot /home/me/example1/production/current/public
SSLEngine on
SSLCertificateFile /home/me/example1/production/shared/example1.crt
SSLCertificateKeyFile /home/me/example1/production/shared/example1.key
SSLCertificateChainFile /home/me/example1/production/shared/gd_bundle.crt
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
</VirtualHost>


<VirtualHost *:80>
ServerName example2.com
DocumentRoot /home/me/example2/production/current/public
</VirtualHost>
<VirtualHost *:443>
ServerName example2.com
DocumentRoot /home/me/example2/production/current/public
SSLEngine on
SSLCertificateFile /home/me/example2/production/shared/iwanto.crt
SSLCertificateKeyFile /home/me/example2/production/shared/iwanto.key
SSLCertificateChainFile /home/me/example2/production/shared/gd_bundle.crt
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
</VirtualHost>

Qual è il problema:

Al riavvio del mio server mi dà un output come questo:

 * Restarting web server apache2                                   
 [Sun Jun 17 17:57:49 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
 ... waiting [Sun Jun 17 17:57:50 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence

Cercando su Google perché questo problema sta arrivando, ho avuto qualcosa del genere:

Non è possibile utilizzare host virtuali basati sul nome con SSL perché l'handshake SSL (quando il browser accetta il certificato del server Web sicuro) si verifica prima della richiesta HTTP, che identifica l'host virtuale basato sul nome appropriato. Se prevedi di utilizzare host virtuali basati sul nome, ricorda che funzionano solo con il tuo server Web non sicuro.

Ma non riesco a capire come eseguire due applicazioni ssl sullo stesso server.

Qualcuno può aiutarmi?


5
Non hai alcun _default_host nella configurazione che hai fornito, quindi sono altrove. Qual è l'output di apache2ctl -S? (Sì, è possibile eseguire più vhosts basati su nome SSL su certificati diversi, a condizione che non sia necessario supportare i browser client che eseguono Windows XP o altri che non supportano TLS SNI. È necessario supportare Windows XP?)
Shane Madden

Risposte:


87

Quasi lì!

Aggiungi questo a doors.conf o http.conf e mantieni la configurazione sopra.

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.

    # !important below!
    NameVirtualHost *:443 
    Listen 443
</IfModule>

Il commento "#! Important! Deve essere rimosso o spostato su un'altra riga. Altrimenti, grazie mille per l'interpretazione di questo messaggio di errore impreciso per me.
flickerfly

3
Questo non funziona più in Apache 2.4.7
Malhal,

Grazie. Ho scoperto che dovevo commentare Ascolta 443 perché viene utilizzato anche nelle mie
configurazioni conf.d

3

Mi ha aiutato a eseguire anche "/ usr / sbin / apachectl -S". Questa uscita di comando mostra DUE file "ssl.conf" sullo stesso percorso. Sposta o elimina il file del colpevole e tutto dovrebbe funzionare dopo.


1

Puoi aggiungerlo alla tua configurazione di apache su /etc/apache2/ports.conf:

<IfModule mod_ssl.c>                
    Listen 443                      
    <IfModule !mod_authz_core.c>    
        # Apache 2.2                
        NameVirtualHost *:443       
    </IfModule>                     
</IfModule>                         

(Funziona in entrambi: apache 2.2 e 2.4)

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.