SSL || the first has precedence, perhaps you need a NameVirtualHost directive

Lord_Icon

Member
Moin,

ich hatte gestern ein Plattenausfall, sodass ich das OS (Suse) aus einen Backup heraus wieder herstellen musste.
Hatte soweit auch alles geklappt... nur SSL scheint Probleme zu machen.

Es sind 2 IP Adressen auf einen Server geschalten. Eine davon wird mit 443 (SSL) sowie ein gültigen Zertifikat (kein selbstzerti.) verwendet.

Die VHOST-Datei war durch den Plattenausfall nicht betroffen, da diese auf einer anderen Platte lag. Ist also 100%tig unverändert.

/etc/apache2/** - Datein könnten in Betracht kommen, da diese aus dem Backup stammen.

Okay. Hier jetzt erstmal die Fehlermeldung im Detail:
Code:
[Sun Nov 18 10:50:07 2012] [warn] VirtualHost 58.***.144.147:443 overlaps with VirtualHost 58.***.144.147:443, the first has precedence, perhaps you need a NameVirtualHost directive
[Sun Nov 18 10:50:07 2012] [warn] VirtualHost 58.***.144.147:80 overlaps with VirtualHost 58.***.144.147:80, the first has precedence, perhaps you need a NameVirtualHost directive

Wenn ich mich recht erinnere, dann hatte ich diesen Fehler auch schon vorher... SSL lief aber dennoch. Wobei ich mich jetzt darauf nicht unbedingt berufen würde.

Frage 1:
wenn ich netstat -at aufführe, dann SOLLTE doch hier u.a. auch der SSL Dienst aufgeführt sein? oder nicht ?

Code:
Aktive Internetverbindungen (Server und stehende Verbindungen)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:imaps                 *:*                     LISTEN
tcp        0      0 *:pop3s                 *:*                     LISTEN
tcp        0      0 *:mysql                 *:*                     LISTEN
tcp        0      0 *:pop3                  *:*                     LISTEN
tcp        0      0 *:imap                  *:*                     LISTEN
tcp        0      0 *:ftp                   *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 *:smtp                  *:*                     LISTEN
tcp        0      0 *:www-http              *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN

Wenn dem so ist, dann ist fraglich, warum dieser nicht gelistet ist.

in der -Datei (/etc/apache2/listen.conf) steht drin:
Code:
Listen 80


<IfDefine SSL>
    <IfDefine !NOSSL>
	<IfModule mod_ssl.c>

	    Listen 443

	</IfModule>
    </IfDefine>
</IfDefine>

SSL ist auch als Modul aktiviert.
Code:
/etc/sysconfig/apache2

APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif [B]ssl [/B]suexec userdir php5 rewrite"

Wo könnte ich noch suchen ?
 
/etc/apache2/** - Datein könnten in Betracht kommen, da diese aus dem Backup stammen.
Schau hier insbesondere, ob eventuell Dateien zuviel (etwa aus der Default-Installation) vorhanden sind.
SuSE bindet aus verschiedenen Verzeichnissen (conf.d, sysconfig.d und vhosts.d) gerne mal "*.conf" ein.
Die Fehlermeldung klingt so, als ob in der resultierenden Summen-Konfiguration der Host zweimal definiert ist.
 
**auf den kopf klatsch**
Stimmt... das SSL verzeichniss wird 2 mal includiert, sodass dieser fehler angezeigt wird. habs rausgenommen und schon meckert er nicht mehr.

Was leider das Problem selbst nicht löst.

Code:
System:~ # netstat -t -l -p
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:imaps                 *:*                     LISTEN      2017/dovecot
tcp        0      0 *:pop3s                 *:*                     LISTEN      2017/dovecot
tcp        0      0 *:mysql                 *:*                     LISTEN      1830/mysqld
tcp        0      0 *:pop3                  *:*                     LISTEN      2017/dovecot
tcp        0      0 *:imap                  *:*                     LISTEN      2017/dovecot
tcp        0      0 *:ftp                   *:*                     LISTEN      5397/vsftpd: LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN      1908/sshd
tcp        0      0 *:smtp                  *:*                     LISTEN      2076/master
tcp        0      0 *:www-http              *:*                     LISTEN      1958/httpd2-prefork
tcp        0      0 *:ssh                   *:*                     LISTEN      1908/sshd

www-https kommt einfach nicht hoch.
Hast du da vvlt. auch noch ne Such-Idee ?
 
www-https kommt einfach nicht hoch.
Hast Du die /etc/sysconfig.d/apache2 mit dem Backup verglichen?
SSL wird dort ja mittels "APACHE_MODULES=ssl" und "APACHE_SERVER_FLAGS=-DSSL" aktiviert, das ist es m.W. in Defaultinstallation nicht?
mod_ssl ist überhaupt installiert?
 
Zwischenupdate:

Den Problemverursacher habe ich mittlerweile orten können.

Vorher:
Code:
/etc/apache2/listen.conf

#Listen 443
Listen 80

<IfDefine SSL>
    <IfDefine !NOSSL>
       <IfModule mod_ssl.c>

           Listen 443

       </IfModule>
    </IfDefine>
</IfDefine>

Da ich mich mit SSL realtiv gut auskenne (denk ich) und alle config Datei korrekt waren, habe ich einfach mal die Prüfroutine rausgekommen.
Code:
/etc/apache2/listen.conf

Listen 443
Listen 80

#<IfDefine SSL>
#   <IfDefine !NOSSL>
#       <IfModule mod_ssl.c>
#
#           Listen 443
#
#       </IfModule>
#    </IfDefine>
#</IfDefine>

Jetzt läuft auch SSL wieder gewohnt.

@Wistler:
Deine Hinweise gehte ich jetz mal nach... wobei deine Pfade aus Debian wohl stammen... aber ich find bzw. kenne viele abweichende Pfade.
Prüf ich mal, was ich drin hab.
 
Nein, die Pfade sind schon aus SuSE.
Wenn das ohne "<IfDefine SSL>" funktioniert, dann ist das SSL nicht gesetzt (oder aus irgendeinem Grund NOSSL).
Anbei mal der komplette Kommentar zu dieser Option aus einer /etc/sysconfig.d/apache2 von SLES 11:

Code:
## Type:        string
## Default:     ""
## ServiceRestart: apache2
#
# Additional server flags:
#
# Put here any server flags ("Defines") that you want to hand over to
# httpd at start time, or other command line flags.
#
# Background: Any directives within an <IfDefine flag>...</IfDefine>
#             section are only processed if the flag is defined.
#             This allows to write configuration which is active only in a
#             special cases, like during server maintenance, or for testing
#             something temporarily.
#
# Notably, to enable ssl support, 'SSL' needs to be added here.
# To enable the server-status, 'STATUS' needs to be added here.
#
# It does not matter if you write flag1, -D flag1 or -Dflag1.
# Multiple flags can be given as "-D flag1 -D flag2" or simply "flag1 flag2".
#
# Specifying such flags here is equivalent to giving them on the commandline.
# (e.g. via rcapache2 start -DReverseProxy)
#
# Example:
#      "SSL STATUS AWSTATS SVN_VIEWCVS no_subversion_today"
#
APACHE_SERVER_FLAGS="SSL"
 
ich hatte gestern ein Plattenausfall, sodass ich das OS (Suse) aus einen Backup heraus wieder herstellen musste.

Reine Neugierde,: Wie habe ich mir das vorzustellen, dass Dein virtueller Server einen Plattenausfall hatte? Hast Du selber auf einem Root virtualisiert, oder wie wurde vom Provider der Plattenschaden kommuniziert? Oder war es gar kein virtueller Server?
 
Back
Top