Apnea SNI namevhosts sempre verso la prima voce di VirtualHost

Apache sembra dirigere tutte le richieste https al primo <VirtualHost *:443> indipendentemente dalla corrispondenza SNI nei campi ServerName / ServerAlias.

Apache è costruito con SNI
Versione server: Apache / 2.2.22 (Ubuntu)
Server costruito: Mar 8 2013 15:53:13
OpenSSL 1.0.1 14 mar 2012

  • La cache di session non è configurata ... perché?
  • Apache, SVN e Active Directory: come evitare la configuration duplicata?
  • Server multipli sullo stesso porto, utilizzando un bilanciatore di carico elastico
  • Quanto spesso dovrebbe essere riavviato Apache e MySQL?
  • Dovrebbe un virtualhost utilizzare sempre il dominio nudo come ServerName?
  • Come abilitare la logging dettagliata di mod_rewrite
  • report di error.log:

     Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366) 

    Quale suggerisce che SNI funziona come per http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI (Come si può sapere se la tua build di Apache support SNI?)

    SSL_TLS_SNI sembra essere impostato appropriatamente quando richiesto utilizzando HTTPS (verificato con phpinfo() )

    Configurazione:

     <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. NameVirtualHost *:443 Listen 443 </IfModule> #<VirtualHost *:443> # <Location /> # Order allow,deny # Deny from all # </Location> #</VirtualHost> <VirtualHost *:443> SSLEngine on ServerAdmin webmaster@localhost ServerName server.com ServerAlias server.com DocumentRoot /web/default ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined SSLCertificateFile /path/server.com.crt SSLCertificateKeyFile /path/server.com.key </VirtualHost> <VirtualHost *:443> SSLEngine on ServerAdmin webmaster@localhost ServerName alias.com ServerAlias alias.com DocumentRoot /web/default ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined SSLCertificateFile /path/alias.com.crt SSLCertificateKeyFile /path/alias.com.key </VirtualHost> 

    Entrambi https://server.com e https://alias.com provano a fornire il certificato (e il contenuto se ignorano l'avviso di cert) da server.com

    Configurazione simile funziona bene utilizzando HTTP: 80 (solo la modifica è SSLEngine on e il certificato / routes chiave)

    Se disattivo il primo host virtuale (limitando l'accesso HTTPS a siti definiti), ho sempre un errore SSL (anche se è un sito definito)

    Grazie

    EDIT:
    Ulteriori bandiere

     SSLProtocol all SSLCipherSuite HIGH:MEDIUM SSLStrictSNIVHostCheck on SSLVerifyClient none SSLProxyEngine off 

    SSLStrictSNIVHostCheck on modo SSLStrictSNIVHostCheck on supportre solo i browser SNI abilitati comunque

    output di apache2ctl -S :

     *:443 is a NameVirtualHost default server server.com (/etc/apache2/sites-enabled/000-default:22) port 443 namevhost server.com (/etc/apache2/sites-enabled/000-default:22) port 443 namevhost alias.com (/etc/apache2/sites-enabled/000-default:39) port 443 namevhost other.com (/etc/apache2/sites-enabled/other:22) 

  • Aggiorna Apache dalla sorgente se l'originale è stato installato da un rpm?
  • Apache - stesso username in diversi file .htpasswd
  • Come aggiornare Apache da 2.2.3 a 2.2.21
  • Creazione non intertriggers di richieste di certificato SSL
  • Impedire che il server sia inondato di richieste
  • Come elaborare quanti IP sono disponibili su una maschera di networking a / 29
  • 3 Solutions collect form web for “Apnea SNI namevhosts sempre verso la prima voce di VirtualHost”

    Aggiornare

    Quindi, per qualche strana ragione, sembra che il problema si sia risolto.
    Forse è una sorta di strano problema di cache o qualcosa (anche se ho apache2ctl stop/start/restart e sudo service apache2 stop/start/restart/reload ed molte volte e hanno eseguito test localmente sul server, nonché utilizzando diverse macchine diverse) .

    Sentitevi liberi di abbandonare questa domanda o lasciarla libera se funziona come qualsiasi tipo di riferimento.
    Grazie per tutti i ragazzi di aiuto!

    La tua configuration sembra OK; La direttiva SSLEngine On è stata inclusa; Secondo il messaggio di log, sembra che il problema venga dal lato client.

    Non tutti i clienti supportno SNI, tuttavia la maggior parte di loro fa. Dipende dal modo in cui la negoziazione SSL viene fatta, dal sistema (non funziona su Win XP allora) o dal browser (la versione deve essere abbastanza recente). Guarda l' elenco dei browser con il supporto di SNI . Se è necessario assicurarsi che tutti i clienti ottengano l'accesso ai tuoi siti web, non è ansible utilizzare SNI a causa di queste vecchie versioni (del browser o del sistema). Avere bisogno di un IP per ServerName e utilizzare VirtualHost $ IP_alias: 443 per Alias.com ServerName e VirtualHost $ IP_server: 443 per ServerName server.com invece di VirtualHost *: 443 per entrambi.

    Si ottiene un errore con il primo host virtuale perché, senza aver incluso l' SSLEngine on direttiva, Apache invia una risposta HTTP senza SSL. Se si desidera questa tipologia di funzionalità è necessario impostare un altro sito (eventualmente con un altro certificato, a less che non si riutilizzi un dominio esistente) per il vostro vhost predefinito, anche se tutto quello che si desidera fare è restituire un bel errore.

    Forse verificare che i certificati siano effettivamente diversi? La tua configuration appare corretta.

    Inoltre, verificare che non ci siano altre sezioni di VirtualHost che ascoltano nella port 443. Apache selezionerà il corrispondente più corretto, il che significa che se qualcosa è più specifico per l'indirizzo in cui è stata effettuata la connessione, tale voce avrà la precedenza. Non credo che questo sia il tuo problema, però.

    Inoltre, come un punto di interesse, quello che vedete dall'utente è quello che accadrebbe se il client non support SNI nella maggior parte dei casi.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.