Pagina 1 di 1

Apache, virtual host e ssl

Inviato: ven 9 nov 2007, 14:46
da alex.franci
Ciao a tutti!
Ho creato dei virtual host sul mio web server Apache/1.3.34:

the-root.org:80
bus.the-root.org:80
ragio579.the-root.org:80
webmail.the-root.org:80

nell'ultimo vHost ho inserito una redirezione verso un altro vHost, questo:
webmail.the-root.org:443
in modo che chiunque voglia accedere alla webmail sia forzato ad usare connessione protetta. Qui viene il problema

se io provo a collegarmi a
https://the-root.org (provateci anche voi)
mi va nella webmail. stessa cosa con
https://bus.the-root.org
https://ragio579.the-root.org
la cosa non mi soddisfa per niente. vorrei che se uno non scrive ESPRESSAMENTE https://webmail.the-root.org, non si connetta alla webmail. questo e' il mio file di conf relativo ai vHost:

Codice: Seleziona tutto

#------------------
#BASE VIRTUAL HOST
#------------------
<VirtualHost *:80>
	ServerName the-root.org
	#ServerAlias the-root.org
	ServerAdmin alex@the-root.org
	DocumentRoot /data/www

	<Directory /data/www/>
  		Options Includes MultiViews
  		AllowOverride None
  		Order allow,deny
  		Allow from all
	</Directory>

	<Directory /data/www/files/>
    		Options Includes Indexes MultiViews
    		AllowOverride None
    		Order allow,deny
    		Allow from all
	</Directory>
</VirtualHost>

#------------------
#WEBMAIL VIRTUAL HOST
#------------------
<VirtualHost *:80>
ServerAdmin alex@the-root.org
DocumentRoot /data/webmail
ServerName webmail.the-root.org
Redirect / https://webmail.the-root.org

</VirtualHost>

<VirtualHost *:443>
ServerAdmin alex@the-root.org
DocumentRoot /data/webmail
ServerName webmail.the-root.org
	#-----------
	#SSL SECTION
	#-----------
        <IfModule mod_ssl.c>
        SSLEngine on
	#???
	SSLCipherSuite HIGH:MEDIUM
	SSLProtocol all -SSLv2
	SSLCertificateFile /etc/apache/ssl.crt
	SSLCertificateKeyFile /etc/apache/ssl.key
	SSLCertificateChainFile /etc/apache/ssl.crt
	SSLCACertificateFile /etc/apache/my_ca.crt

#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSL:v2:+EXP
	#SSLOptions +FakeBasicAuth +ExportCertData
	#???
        ##SSLCertificateFile /etc/apache/ssl.crt/ca.crt
        ##SSLCertificateKeyFile   /etc/apache/ssl.key/ca.key
        ##SSLCACertificateFile /etc/apache/ssl.crt/ca-bundle.crt
        SSLVerifyClient none
	#SSLPassPhraseDialog builtin
        #SSLSessionCache dbm:/var/run/ssl_scache
        SSLSessionCacheTimeout 300
        #SSLMutex file:/var/run/ssl_mutex
        #SSLRandomSeed startup builtin
        #SSLRandomSeed connect builtin
	SSLLog /var/log/ssl.log
        SSLLogLevel info
        </IfModule>

    #ServerAlias webmail.the-root.org
    ServerAdmin alex@the-root.org
    DocumentRoot /data/webmail
    ServerName webmail.the-root.org
    #Redirect / https://webmail.the-root.org

CustomLog /var/log/apache/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>


#-------------------
#USERS VIRTUAL HOSTS
#-------------------
<VirtualHost *:80>
ServerAdmin alex@the-root.org
DocumentRoot /data/home/ragio579/www
ServerName ragio579.the-root.org
</VirtualHost>

<VirtualHost *:80>
ServerAdmin alex@the-root.org
DocumentRoot /data/home/bus/www
ServerName bus.the-root.org
</VirtualHost>

grazie mille!

Re: Apache, virtual host e ssl

Inviato: ven 9 nov 2007, 14:56
da conraid
alex.franci ha scritto: nell'ultimo vHost ho inserito una redirezione verso un altro vHost, questo:
webmail.the-root.org:443
in modo che chiunque voglia accedere alla webmail sia forzato ad usare connessione protetta. Qui viene il problema
visto

Letto velocelemente
Non mi piace quel Redirect che hai messo, guarda meglio la documentazione

Inviato: ven 9 nov 2007, 14:59
da alex.franci
ma non e' questo il problema, perche' se anche la tolgo, il problema rimane

Inviato: ven 9 nov 2007, 15:30
da conraid
alex.franci ha scritto:ma non e' questo il problema, perche' se anche la tolgo, il problema rimane
Prova a mettere un virtual host SSL di default

Prima volevo finire ma si è bloccato tutto, slacky.eu non mi andava.

Inviato: ven 9 nov 2007, 15:42
da alex.franci
ho aggiunto

Codice: Seleziona tutto

<VirtualHost *:443>
	SSLEngine on
	SSLCipherSuite HIGH:MEDIUM
	SSLProtocol all -SSLv2
	SSLCertificateFile /etc/apache/ssl.crt
	SSLCertificateKeyFile /etc/apache/ssl.key
	SSLCertificateChainFile /etc/apache/ssl.crt
	SSLCACertificateFile /etc/apache/my_ca.crt
        SSLVerifyClient none
	ServerName the-root.org
	ServerAdmin alex@the-root.org
	DocumentRoot /data/www/ssl
</VirtualHost>
ma a seconda di dove lo metto cambia il risultato.
se lo metto PRIMA del vHost webmail.the-root.org:443, mi carica sempre /data/www/ssl (anche se mi connetto a https://webmail.the-root.org, prova anche tu, ora la configurazione e' cosi').
se lo metto DOPO mi carica sempre https://webmail.the-root.org, anche se mi connetto a https://the-root.org.

Inviato: ven 9 nov 2007, 15:44
da airex
essendoci un solo virtual host su https esso ti viene preso anche come "default" e quindi le richieste finiscono li.

prova a crearne un'altro "fasullo" al cui interno mettere il redirect su un messaggio che dice "indirizzo errato".

Ricorda di mettere questo virtual host prima dell'altro https

Inviato: ven 9 nov 2007, 15:47
da alex.franci
airex ha scritto:essendoci un solo virtual host su https esso ti viene preso anche come "default" e quindi le richieste finiscono li.

prova a crearne un'altro "fasullo" al cui interno mettere il redirect su un messaggio che dice "indirizzo errato".

Ricorda di mettere questo virtual host prima dell'altro https
spe'... hai letto il mio messaggio delle 16:42?

Inviato: ven 9 nov 2007, 15:48
da conraid
esiste l'opzione _default_ se non ricordo male


Comunque il Redirect fallo Permanent, se non metti niente ti prendi un redirect temporaneo. Ora non te ne frega molto, ma per esempio per i motori è molto importante.
E poi perché fai il redirect di /?

non mi torna, ma forse ricordo male io

Inviato: ven 9 nov 2007, 16:58
da alex.franci
ho messo permanent.

apache si comporta in un modo che non capisco.
ho creato la direttiva:

Codice: Seleziona tutto

<VirtualHost *:443>
	ServerName the-root.org
	ServerAdmin alex@the-root.org
	DocumentRoot /data/www/ssl
	Redirect permanent / http://the-root.org
</VirtualHost>
se questa la metto PRIMA del vHost webmail, mi da errore anche se provo ad accedere a https://webmail.the-root.org.
se la metto DOPO il vHost webmail, se provo ad accedere a https://the-root.org, mi redireziona in http://the-root.org (ok!), e https://webmail.the-root.org funziona bene. ma se provo ad andare su https://bus.the-root.org mi va sulla webmail (configurazione corrente). devo fare un redirect *:443 per ogni vhost??? cos'e' che sbaglio?

Inviato: ven 9 nov 2007, 17:24
da alex.franci
ho "risolto" cosi':

Codice: Seleziona tutto

NameVirtualHost *:80
NameVirtualHost *:443

#------------------
#WEBMAIL VIRTUAL HOST
#------------------
<VirtualHost *:80>
ServerAdmin alex@the-root.org
DocumentRoot /data/webmail
ServerName webmail.the-root.org
Redirect permanent / https://webmail.the-root.org
</VirtualHost>

<VirtualHost *:443>
ServerAdmin alex@the-root.org
DocumentRoot /data/webmail
ServerName webmail.the-root.org
	#-----------
	#SSL SECTION
	#-----------
        <IfModule mod_ssl.c>
        SSLEngine on
	#???
	SSLCipherSuite HIGH:MEDIUM
	SSLProtocol all -SSLv2
	SSLCertificateFile /etc/apache/ssl.crt
	SSLCertificateKeyFile /etc/apache/ssl.key
	SSLCertificateChainFile /etc/apache/ssl.crt
	SSLCACertificateFile /etc/apache/my_ca.crt

#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSL:v2:+EXP
	#SSLOptions +FakeBasicAuth +ExportCertData
	#???
        ##SSLCertificateFile /etc/apache/ssl.crt/ca.crt
        ##SSLCertificateKeyFile   /etc/apache/ssl.key/ca.key
        ##SSLCACertificateFile /etc/apache/ssl.crt/ca-bundle.crt
        SSLVerifyClient none
	#SSLPassPhraseDialog builtin
        #SSLSessionCache dbm:/var/run/ssl_scache
        SSLSessionCacheTimeout 300
        #SSLMutex file:/var/run/ssl_mutex
        #SSLRandomSeed startup builtin
        #SSLRandomSeed connect builtin
	SSLLog /var/log/ssl.log
        SSLLogLevel info
        </IfModule>

    #ServerAlias webmail.the-root.org
    ServerAdmin alex@the-root.org
    DocumentRoot /data/webmail
    ServerName webmail.the-root.org
    #Redirect / https://webmail.the-root.org

CustomLog /var/log/apache/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

#<VirtualHost *:443>
#	ServerName the-root.org
#	ServerAdmin alex@the-root.org
#	DocumentRoot /data/www/ssl
#	Redirect permanent / http://the-root.org
#</VirtualHost>

#-------------------
#USERS VIRTUAL HOSTS
#-------------------
<VirtualHost *:80 *:443>
ServerAdmin alex@the-root.org
DocumentRoot /data/home/ragio579/www
ServerName ragio579.the-root.org
</VirtualHost>

<VirtualHost *:80 *:443>
ServerAdmin alex@the-root.org
DocumentRoot /data/home/bus/www
ServerName bus.the-root.org
</VirtualHost>

#------------------
#BASE VIRTUAL HOST
#------------------
<VirtualHost *:80 *:443>
	ServerName the-root.org
	#ServerAlias the-root.org
	ServerAdmin alex@the-root.org
	DocumentRoot /data/www

	<Directory /data/www/>
  		Options Includes MultiViews
  		AllowOverride None
  		Order allow,deny
  		Allow from all
	</Directory>

	<Directory /data/www/files/>
    		Options Includes Indexes MultiViews
    		AllowOverride None
    		Order allow,deny
    		Allow from all
	</Directory>
</VirtualHost>
come vedete, il vHost base l'ho messo alla fine (non so perche', ma *credo* che se tu scrivi https://webmail.the-root.org e lui incontra prima https://the-root.org, usa quello. altrimenti non me lo so spiegare).
poi per ogni vhost gli ho dichiarato la porta :80 e la porta :443. in questo modo anche i singoli utenti possono usare connessione cifrata. in verita' non era quello che intendevo, ma anche una soluzione di questo tipo non mi sembra male e hai le sue ragioni, quindi ricapitolando...
VISTO CHE FUNZIONA tengo cosi' ;-)

pero' se qualcuno mi sa spiegare perche'... almeno capisco :P