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

  • LogParser per Apache come Microsoft IIS LogParser
  • Come sostituire atomicamente i file in Apache?
  • Come faccio a sapere where risiede il codice del sito web?
  • Apache / 2.2.20 (Ubuntu 11.10) la compressione gzip non funziona su pagine PHP, il contenuto è chunked
  • Differenza tra ServerName e ServerAlias ​​
  • Che cos'è nginx uguale per il mio htaccess 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) 

  • Come configurare la directory del documento Apache?
  • Modo semplice per fare Apache chiedere una password, a less che non sia specificato da IP
  • Posso integrare Bugzilla con un sito web esistente e un server SVN?
  • Come faccio a lavorare i connettori AJP di Tomcat?
  • Straordinaria reindirizzamento http -> https anche se non configurato
  • Autenticare dynamicmente Apache con LDAP sulla base della string di richieste?
  • 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.