# https Problem



## Falcon37 (2. Sep. 2011)

Mir ist gerade was aufgefallen in ISPConfig 3 in Verbindung mit Lenny.
Eine Site soll unter https:// erreichbar sein (selbst erstelltes SSL Zertifikat) aber nun sind alle Seiten unter https:// erreichbar lenken aber dann auf diese Domain.

Hier zum Verständnis wie ich das meinte:

https://www.test1.com ruft https://www.test1.com auf
https://www.test2.com aber https://www.test1.com
https://www.test3.com -> https://www.test1.com
usw.

Der Punkt SSL ist aber bei allen anderen Webs nicht aktiviert.
Ist dies normal, wie kann ich dies verhindern?

Danke.


----------



## ufreier (3. Sep. 2011)

*SSL vs name-based vhosts*

wäre dann logisch, wenn alle die gleiche IP-Adresse haben. SSL und name-based vhosts klappt nicht wirklich, ist hier ganz gut erklärt: SSL/TLS Strong Encryption: FAQ - Apache HTTP Server. Als Lösung: die anderen Websites dürfen sich nicht auf 443 melden sondern müssen auf Port 80 festgenagelt werden. Ich glaube das geht aber mit ISPConfig nicht, also zumindest habe ich bisher keine Option gefunden und unter 'Optionen' -> 'Apache Direktiven' gehört es eigentlich nicht hin, das müßte ja in den VirtualHost-Tag als :80. Dann also andersrum: für eine SSL-Site eine IP-Adresse auswähen, die sonst von keiner Website benutzt wird.

Dabei ist noch folgendes interessant: irgendwie habe ich noch keine Möglichkeit gefunden zu unterbinden, dass ein Kunde bei seiner Website den Reiter SSL angezeigt bekommt, d.h. wenn ich es richtig verstehe, kann doch jeder Kunde für seine Site SSL einrichten? Und damit passiert dann genau das, was Du geschildert hast. 

Gruß, Uwe


----------



## Falcon37 (3. Sep. 2011)

Hi, danke für die interessante und sehr schnelle Antwort! 
Auf dem Server habe ich ein paar Subnetze daran liegt's eig. nicht denke ich mal.

Hab das so geroutet. Jede Website hat bei mir mit oder ohne https immer seine eigene IP: 
*Streamsite.xx* - die _https _haben soll und muss (ist natürlich auch aktiviert) - 66.228.122.51
*anderesite.xx *- SSL ist nicht aktiviert und trotzdem aufrufbar, verweißt dann auf die erste domain - 66.228.122.52
*anderesite2.xx* - SSL ist aktiviert und aufrufbar, verweißt aber dann auf die erste domain - 66.228.122.53
usw.

Werde hier schreiben wenn ich sowas wie eine dauerhafte Lösung dafür habe.

Ich erkläre das so autistisch anmutend da Samstag ist und ich gleich los will... Rest kann man sich ja denken 
Schönes WE!


----------



## ufreier (3. Sep. 2011)

*hmm ...*



> Hab das so geroutet [...]


Davon weiß aber Dein Apache nichts, sonst würde er sich nicht so verhalten. Es würde mich interessieren, wie dessen conf aussieht.

Gruß, Uwe


----------



## Falcon37 (7. Sep. 2011)

Die /etc/apache2/httpd.conf ist leer, aber wenn ich so drüber nachndenke sollte es wohl er die /etc/apache2/apache2.conf sein :


```
#
# Based upon the NCSA server configuration files originally by Rob McCool.
[...]
# Do NOT add a slash at the end of the directory path.
#
ServerRoot "/etc/apache2"

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
#<IfModule !mpm_winnt.c>
#<IfModule !mpm_netware.c>
LockFile /var/lock/apache2/accept.lock
#</IfModule>
#</IfModule>

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15

##
## Server-Pool Size Regulation (MPM specific)
## 

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

#
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#

AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

#
# DefaultType is the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value.  If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
#
DefaultType text/plain


#
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
#
HostnameLookups Off

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog /var/log/apache2/error.log

#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn

# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

# Include all the user configurations:
Include /etc/apache2/httpd.conf

# Include ports listing
Include /etc/apache2/ports.conf

#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
# If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

#
# Define an access log for VirtualHosts that don't define their own logfile
CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#

#
# Putting this all together, we can internationalize error responses.
#
# We use Alias to redirect any /error/HTTP_<error>.html.var response to
# our collection of by-error message multi-language collections.  We use 
# includes to substitute the appropriate text.
#
# You can modify the messages' appearance without changing any of the
# default HTTP_<error>.html.var files by adding the line:
#
#   Alias /error/include/ "/your/include/path/"
#
# which allows you to create your own set of files by starting with the
# /usr/share/apache2/error/include/ files and copying them to /your/include/path/, 
# even on a per-VirtualHost basis.  The default include files will display
# your Apache version number and your ServerAdmin email address regardless
# of the setting of ServerSignature.
#
# The internationalized error documents require mod_alias, mod_include
# and mod_negotiation.  To activate them, uncomment the following 30 lines.

#    Alias /error/ "/usr/share/apache2/error/"
#
#    <Directory "/usr/share/apache2/error">
#        AllowOverride None
#        Options IncludesNoExec
#        AddOutputFilter Includes html
#        AddHandler type-map var
#        Order allow,deny
#        Allow from all
#        LanguagePriority en cs de es fr it nl sv pt-br ro
#        ForceLanguagePriority Prefer Fallback
#    </Directory>
#
#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var



# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.

# Include generic snippets of statements
Include /etc/apache2/conf.d/

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/

<Directory /usr/share/phpmyadmin>
Order allow,deny
Allow from all
</Directory>

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
DOSEmailNotify me@example.com
DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
DOSLogDir "/var/lock/mod_evasive"
</IfModule>
```
_Maximale Länge 10000 Zeichen in dem Board. Deswegen remarks entfernt._


----------



## ufreier (8. Sep. 2011)

ja, vorbei sind die Zeiten, als der Apache eine übersichtliche conf hatte. Die hier ist auch recht hübsch - das mod_evasive kannte ich z.B. noch gar nicht, sieht interessant aus. Aber bzgl. Deines Problems ist die Konfiguration der vhosts wichtig, also der Bereich:


```
Include /etc/apache2/sites-enabled/
```
und daraus die Dateien, in denen die 



> *Streamsite.xx* - die _https _haben soll und muss (ist natürlich auch aktiviert) - 66.228.122.51
> *anderesite.xx *- SSL ist nicht aktiviert und trotzdem aufrufbar, verweißt dann auf die erste domain - 66.228.122.52
> *anderesite2.xx* - SSL ist aktiviert und aufrufbar, verweißt aber dann auf die erste domain - 66.228.122.53


definiert sind. Dazu vielleicht noch ein Blick in die /etc/apache2/sites-available/ispconfig.conf ganz unten, dort schreibt ISPConfig die NameVirtualHost-IPs/Ports rein, dass da alles okay ist und dann sollte sich das Phänomen eigentlich erklären.

Gruß, Uwe


----------



## Falcon37 (10. Sep. 2011)

Vielen herzlichen Dank für die Hilfe! 

Zu mod_evasive muss ich noch sagen, dass der Server momentan eine Uptime von 732 Tagen hat und ich keine Ahnung habe ob dies da auch so funktioniert  _Professionalität ist ̶n̶̶i̶̶c̶̶h̶̶t̶ mein zweiter Vorname!_


----------

