Domanda

Sto cercando di impostare il nostro server per consentire il traffico su SSL.Sono consapevole che SSL non funziona con Nome Host Virtuale, ma abbiamo tutti i nostri server apache su macchine virtuali con privato dedicato IPs.Abbiamo una primaria macchina virtuale che ha mod_proxy di installazione per indirizzare il traffico al vm appropriate.

Tuttavia, al fine di indirizzare il traffico https abbiamo bisogno di avere il certificato installato sul proxy, come pure le macchine virtuali.Abbiamo un certificato con caratteri jolly che può essere utilizzato in tutti i nostri padroni di casa.Tutto sembra funzionare correttamente, ma ho visualizzato il seguente nel log di apache per il proxy:

[warn] Init:SSL server IP/porta di conflitto:host1.dominio.com:443 (/etc/apache2/sites-enabled/host1:1) vs.host2.dominio.com:443 (/etc/apache2/sites-enabled/host2:1)

C'è uno di questi messaggi di errore per ogni host abbiamo impostato il proxy.Il nostro Virtual Host di installazione per il proxy è pubblicato qui di seguito:

<VirtualHost ipaddress:443>
    ServerName host1.domain.com
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / https://privateip:443/
    ProxyPassReverse / https://privateip:443/

    SSLProxyEngine on
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

C'è un modo che posso ottenere questo lavoro?

È stato utile?

Soluzione

Sembra che Apache è di avviso che si dispone di più <VirtualHost> sezioni con lo stesso indirizzo IP e la porta...fino a di lavoro senza avvisi, penso che si avrebbe bisogno di utilizzare qualcosa come Nome del Server di Indicazione (SNI), un modo per identificare il nome host richiesto come parte del handshake SSL.In sostanza, consente di fare host virtuali basati sul nome su SSL, ma non sono sicuro di quanto bene è supportata dal browser.Altro che qualcosa di simile SNI, in pratica sei limitato a uno SSL abilitato nome di dominio per ogni indirizzo IP che si espongono al pubblico di internet.

Naturalmente, se siete in grado di accedere a siti web correttamente, probabilmente sarete bene ignorare gli avvertimenti.Questi particolari non sono molto gravi - sono principalmente un'indicazione di cosa guardare, se si verificano problemi

Altri suggerimenti

Per quanto ne so, Apache supporta SNI a partire dalla Versione 2.2.12 Purtroppo la documentazione non ancora riflettere la modifica.

Andare per http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI fino a che è finito

Si può essere in grado di sostituire l':

VirtualHost ipaddress:443

con

VirtualHost *:443

Probabilmente avete bisogno di todo questo su tutte le virt padroni di casa.

Probabilmente chiaro il messaggio.Lasciate che la direttiva ServerName preoccuparsi di instradare il messaggio di richiesta.

Di nuovo, si potrebbe non essere in grado di fare questo se si dispone di più indirizzi ip alias per la stessa macchina.

Il VirtualHost sarebbe simile a questa:

NameVirtualHost IP_Address:443

<VirtualHost IP_Address:443>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/ca.crt    # Where "ca" is the name of the Certificate
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    ServerAdmin webmaster@domain_name.com
    DocumentRoot /var/www/html
    ServerName www.domain_name.com
    ErrorLog logs/www.domain_name.com-error_log
    CustomLog logs/www.domain_name.com-access_log common
</VirtualHost>

Apache non supporta SSL sul nome-host virtuale basato solo su Host Virtuali basati su IP.

Fonte:Apache 2.2 SSL FAQ domande Perché non è possibile utilizzare host Virtuali Basati sul Nome per identificare i diversi host virtuali SSL?

A differenza di SSL, TLS specifiche permettono nome host basati su (SNI come detto da qualcun altro), ma Apache non supporta ancora questa funzione.Che presumibilmente sarà in un futuro rilascio quando compilate con openssl 0.9.8.

Inoltre, mod_gnutls crediti a supporto di SNI, ma non ho mai realmente provato.

Prima è necessario NameVirtualHost ip:443 in voi file di configurazione!Probabilmente hai uno con 80 alla fine, ma avrete anche bisogno di uno con 443.

Secondo avete bisogno di un *.dominio certificato (jolly) (è possibile effettuare uno)

Terzo si può fare solo qualcosa.dominio web in un unico ip (a causa del certificato)

È NECESSARIO aggiungere di seguito parte per consentire NameVirtualHost funzionalità con un determinato IP.

NameVirtualHost IP_Address:443
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top