PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2, SSL und vhosts



mamue
22.05.04, 17:25
Ich bin gerade dabei, endlich mal den Webmail zugang abzusichern.
Das läuft auch im Prinzip mit apache2 auf SuSE9.0. Da aber ja (noch) das Zertifikat unbekannt ist, möchte diesen gesicherten Zugang erst einmal alternativ anbieten. Also habe ich zwei CNAME eingerichtet, "mail" und "mails" und zwei VirtualHost einzurichten versucht.
Jetzt beschwert sich aber Apache, dass sich die beiden VirtualHost überlappen würden:
"VirtualHost mails overlaps with with VirtualHost mail, the first has precedence"
Folglich kann ich den zweiten auch nicht mehr erreichen.
Muss ich unbedingt dafür virtuelle IP einrichten, oder gibt es auch noch eine andere Möglichkeit? Oder liegt es daran, dass der Pfad in beiden VirtualHost der gleiche ist?

Danke,
mamue

himbeere
22.05.04, 21:03
Hallo

Stichwort: NameVirtualHost

Ansonsten poste mal die virtualhost section Deiner apache.conf.

Thomas

mamue
24.05.04, 07:57
Ich komme mit NameVirtualHost noch nicht so recht klar.
Meine vhosts sehen so aus:


ssl-mail.conf:
<IfDefine SSL>
<IfDefine !NOSSL>

<VirtualHost mails:443>

ServerName mails:443
DocumentRoot /usr/local/httpd/htdocs/mail
ErrorLog /var/log/apache2/error_log
TransferLog /var/log/apache2/access_log
SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSL v2:+EXP:+eNULL

SSLCertificateFile /etc/apache2/ssl.crt/server.crt

SSLCertificateKeyFile /etc/apache2/ssl.key/server.key

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/srv/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog /var/log/apache2/ssl_request_log ssl_combined

</VirtualHost>



mail.conf:
<VirtualHost mail>
ServerAdmin administrator@fileserver
ServerName mail

DocumentRoot /usr/local/httpd/htdocs/mail

ErrorLog /var/log/apache2/mail.log
CustomLog /var/log/apache2/mail.log combined

HostnameLookups Off

UseCanonicalName Off
ServerSignature On
</VirtualHost>

<Directory "/usr/local/httpd/htdocs/mail">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>


Ich verstehe den Sinn von NameVirtualHost wahrscheinlich nicht so recht. Geht es dabei nicht darum, innerhalb der vhost-deklaration einer IP einen (neuen) Namen zuzuordnen? Das mache ich doch im Prinzip im Nameserver durch die CNAME Einträge.

Danke,
mamue

himbeere
24.05.04, 09:22
mail.conf:
<VirtualHost mail>

Wahrscheinlich reicht es schon wenn Du das in:

<VirtualHost mail:80>

änderst.

Übrigens ermöglicht Dir die NameVirtualHost Direktive das anlegen von meheren VirtualHost mit der selben IP. Beispiel:

NameVirtualHost 192.168.1.1
<VirtualHost 192.168.1.1>
Servername www.heise.de
DocumentRoot /www/de/1
</VirtualHost>

<VirtualHost 192.168.1.1>
Servername www.golem.de
DocumentRoot /www/de/2
</VirtualHost>

Nun können die www-records der beiden Domains auf dieselbe IP zeigen und werden von Apache ordentlich verarbeitet. Prinzip klar?

Thomas

mamue
24.05.04, 15:19
Wahrscheinlich reicht es schon wenn Du das in:
NameVirtualHost 192.168.1.1
<VirtualHost 192.168.1.1>
Servername www.heise.de
DocumentRoot /www/de/1
</VirtualHost>

<VirtualHost 192.168.1.1>
Servername www.golem.de
DocumentRoot /www/de/2
</VirtualHost>


Ahh! Warum sagt mir der Apache das nicht gleich! Ich werde es nachher mal ausprobieren, danke.

mamue

steve-bracket
24.05.04, 15:32
Für zwei SSL Hosts kann man keine NameVirtualHost's verwenden.
Für jeden SSL Host benötigst du einen eindeutigen Socket.
(Socket == IP+Tcp-Portnummer)

Somit kannst du variiren, entweder für jeden SSL-Host eine eindeutige IP Adresse oder einen anderen Tcp-Port verwenden.
Üblicherweise nimmt man ersteres.

Grüsse
Steve

himbeere
24.05.04, 22:42
Für jeden SSL Host benötigst du einen eindeutigen Socket.
(Socket == IP+Tcp-Portnummer)

Yupp. NameVirtualHost jeht natürlich nich bei ssl vhost.

Thomas

mamue
24.05.04, 23:04
In meinem Fall hätte ich einen NameVirtualHost auf 172.18.0.1:80 und einen ssl-NameVirtualHost auf 172.18.0.1:443. Ich bin mir aber fast sicher, daß es dabei nicht bleiben wird, also muß wohl doch besser gleich mehrere IP nehmen.

Schade,
mamue

steve-bracket
25.05.04, 09:18
In meinem Fall hätte ich einen NameVirtualHost auf 172.18.0.1:80 und einen ssl-NameVirtualHost auf 172.18.0.1:443. Ich bin mir aber fast sicher, daß es dabei nicht bleiben wird, also muß wohl doch besser gleich mehrere IP nehmen.

Schade,
mamue

Am besten eine Adresse rein für NameVirtualHosts, und eben auf jeden SSL-Host eine zusätzliche IP.
Da bleibt das ganze übersichtlich.
(Man kann sich zwar mit unterschiedlichen Ports "spielen", vernünftiger ist es wohl für jeden SSL-Host eine L3 Addy.)

MichlS
21.06.04, 13:17
hallo habe da auch meine troubles mit apache 1.3.irgendwas *g*

also ich habe einen ISP der hat meine DNS einträge über .. sagen wir zur einer domain www.erstedomain.at und zur 2ten members.zweitedomain.at
beide sollen auf einen VISAS verseuchten strato server laufen ...
in jeweils versch. verzeichnisse .. beide zeigen auf die gleiche IP 81.xx.xx.xx

die www.erstedomain.at soll auf /var/www/www.erstedomain.at
und die members.zweitedomain.at soll auf standard visas bleiben /usr/local/visas/public_html

ein kollege sagte mir das muss ich auch im /etc/hosts angeben .. habe ich gemacht :



81.xx.xx.xx www.erstedomain.at
81.xx.xx.xx members.zweitedomain.at


meine http.conf sieht so aus:




#
# Use name-based virtual hosting.
#
NameVirtualHost 81.xx.xx.xx #meine externe IP

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost 81.xx.xx.xx>
ServerAdmin mail@domain.tld
DocumentRoot /var/www/www.erstedomain.at
ServerName www.erstedomain.at
ErrorLog logs/www.erstedomain.at_log
CustomLog logs/www.erstedomain.at-access_log common
</VirtualHost>


<VirtualHost 81.xx.xx.xx>
ServerAdmin mail@domain.tld
DocumentRoot /usr/local/visas/public_html
ServerName members.zweitedomain.at
ErrorLog logs/members.zweitedomain.at_log
CustomLog logs/members.zweitedomain.at-access_log common
</VirtualHost>



und weiter unten hab ich das hier stehen :



<VirtualHost _default_:443>
DocumentRoot /usr/local/visas/public_html/
php_admin_value open_basedir /etc/:/usr/local/visas/:/tmp/:/usr/local/lib/php
php_admin_value safe_mode Off
php_admin_value session.save_path /usr/local/visas/sessions/
ServerName xxxx.xxxxxxxxx.net
ServerAlias www.xxxx.xxxxxxxxx.net
php_admin_value open_basedir /usr/local/visas/public_html/ssl/
php_admin_value engine off
IndexOptions
DirectoryIndex index.htm index.html index.shtml start.htm start.html start.shtml index.php index.php3
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+SSLv2:+EXP:+eNUL L
SSLCertificateFile /etc/httpd/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/ssl.key/server.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/usr/local/apache/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
Redirectpermanent /adminlevel https://xxxx.xxxxxxxxx.net:22222/adminlevel
Redirectpermanent /domainadminlevel https://xxxx.xxxxxxxxx.net:22222/domainadminlevel
Redirectpermanent /serveradminlevel https://xxxx.xxxxxxxxx.net:22222/serveradminlevel
Redirectpermanent /mail https://xxxx.xxxxxxxxx.net:22222/webmail
Redirectpermanent /webmail https://xxxx.xxxxxxxxx.net:22222/webmail
Redirectpermanent /support https://xxxx.xxxxxxxxx.net:22222/support
Redirectpermanent /mysql https://xxxx.xxxxxxxxx.net:22222/mysql
</VirtualHost>
NamevirtualHost *
<VirtualHost *>
DocumentRoot /usr/local/visas/public_html/
php_admin_value open_basedir /usr/local/visas/public_html/ssl/
php_admin_value engine off
ServerName xxxx.xxxxxxxxx.net
ServerAlias www.xxxx.xxxxxxxxx.net
IndexOptions
DirectoryIndex index.htm index.html index.shtml start.htm start.html start.shtm index.php
Redirectpermanent /adminlevel https://xxxx.xxxxxxxxx.net:22222/adminlevel
Redirectpermanent /domainadminlevel https://xxxx.xxxxxxxxx.net:22222/domainadminlevel
Redirectpermanent /serveradminlevel https://xxxx.xxxxxxxxx.net:22222/serveradminlevel
Redirectpermanent /mail https://xxxx.xxxxxxxxx.net:22222/webmail
Redirectpermanent /webmail https://xxxx.xxxxxxxxx.net:22222/webmail
Redirectpermanent /support https://xxxx.xxxxxxxxx.net:22222/support
Redirectpermanent /mysql https://xxxx.xxxxxxxxx.net:22222/mysql
Redirectpermanent /ssl https://xxxx.xxxxxxxxx.net/ssl/
</VirtualHost>



muss hier auch was geändert werden ?
bzw. muss lokal auch ein DNS server laufen ?
wenn ich danach den apache starte schreibt er hin "starting apache .. done"
wenn man dann jedoch mit /etc/inid.d/apache status nachschaut lauft kein apache und erreichbar is er auch nicht im web ..

kann mir bitte wer helfen ? .. wenn noch infos fehlen bitte posten .. ich poste diese dann sofort ....