Benjamin: Apache: Shared SSL

Hallo,

ich bin von ISS 6 auf Apache 2 umgestiegen :-) und versuche nun, Shared SSL mit Apache zu realiseren, so dass https://ssldomain.com/meinedomain.de eine Art virtuelles Verzeichnis mit SSL für meinedomain.de ist.

Mit dem Alias Befehl funktioniert das für einen Ordner, aber nicht für Unterordner z.B. https://ssldomain.com/meinedomain.de/test.

Hat jemand eine Idee, wie ich das in Apache realiseren kann, ohne einen neuen Vhost zu machen, dessen Document Root eine Ebene höher ist und deswegen auf alle vhosts Zugriff hat?

  1. Hallo,

    ich bin von ISS 6 auf Apache 2 umgestiegen :-) und versuche nun, Shared SSL mit Apache zu realiseren, so dass https://ssldomain.com/meinedomain.de eine Art virtuelles Verzeichnis mit SSL für meinedomain.de ist.

    Dir ist aber schon klar, dass das sicherheitstechnische Konsequenzen nach sich zieht? Die Same-Origin-Policy, wie sie in Browsern implementiert ist, greift dann nämlich nicht mehr - was unter Umständen ziemlich übel werden kann.

    Mit dem Alias Befehl funktioniert das für einen Ordner, aber nicht für Unterordner z.B. https://ssldomain.com/meinedomain.de/test.

    Alias funktioniert grundsätzlich auch für Unterverzeichnissen. Wenn es bei Dir für Unterverzeichnisse nicht funktioniert, liegt's an etwas anderem, aber nicht an Alias. Dazu solltest Du mit ein paar Details mehr aus Deiner Konfiguration rausrücken.

    Viele Grüße,
    Christian

    --
    "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
    1. Alias funktioniert grundsätzlich auch für Unterverzeichnissen. Wenn es bei Dir für Unterverzeichnisse nicht funktioniert, liegt's an etwas anderem, aber nicht an Alias. Dazu solltest Du mit ein paar Details mehr aus Deiner Konfiguration rausrücken.

      Alias für Unterverzeichnisse wär ok für mich.
      Es ist ein Debian 3 Linux vServer mit Plesk 8 und mehreren vhosts in Apache 2 wobei ich den Alias im vhost angelegt habe.
      An was kann es denn liegen bzw. welche Infos braucht ihr?

      1. Wenn ich eine php Datei über das Unterverzeichnis im Alias aufrufe, gibt Apache die Datei mit PHP uninterpretiert als Download zurück!

        An was kann dies liegen? Normale html Dateien funktioniere in Unterordner des Alias?

        1. Hallo,

          Wenn ich eine php Datei über das Unterverzeichnis im Alias aufrufe, gibt Apache die Datei mit PHP uninterpretiert als Download zurück!

          Dann ist PHP nicht korrekt in den Apache eingebunden oder gar nicht erst installiert. Wie bindest Du PHP in Deinen Apachen ein?`(Gib bitte an, welche Konfigurationsdirektiven in welchen Dateien Du dazu verwendest)

          Viele Grüße,
          Christian

          --
          "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
          1. Dann ist PHP nicht korrekt in den Apache eingebunden oder gar nicht erst installiert. Wie bindest Du PHP in Deinen Apachen ein?`(Gib bitte an, welche Konfigurationsdirektiven in welchen Dateien Du dazu verwendest)

            Also PHP funktioniert bei den "normalen" Hosts ohne Probleme:

            httpd.cof
            <directory /var/www/vhosts/test>

            <IfModule mod_php4.c>
              php_admin_flag engine on
              php_admin_flag safe_mode on
              php_admin_value open_basedir "/var/www/vhosts/ssl-it.de/httpdocs:/tmp"
             </IfModule>
             <IfModule mod_php5.c>
              php_admin_flag engine on
              php_admin_flag safe_mode on
              php_admin_value open_basedir "/var/www/vhosts/ssl-it.de/httpdocs:/tmp"
             </IfModule>

            </directory>

            Genau das gleiche habe ich bereits für das Alias Verzeichnis im entsprechenden vHost Eintrag auch eingegeben, es hat aber nicht funktioniert.

            1. Hallo,

              Genau das gleiche habe ich bereits für das Alias Verzeichnis im entsprechenden vHost Eintrag auch eingegeben, es hat aber nicht funktioniert.

              Mit Einbinden meinte ich eher Direktiven wie LoadModule und AddType respektive AddHandler o.ä. Das php_flag-Zeug ist zumindest für die Grundfunktion von PHP uninteressant (d.h. die Tatsache, dass Dir PHP-Seiten zum Download angeboten werden, hängt nicht von dem obigen Code ab).

              Viele Grüße,
              Christian

              --
              "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
              1. Mit Einbinden meinte ich eher Direktiven wie LoadModule und AddType respektive AddHandler o.ä. Das php_flag-Zeug ist zumindest für die Grundfunktion von PHP uninteressant (d.h. die Tatsache, dass Dir PHP-Seiten zum Download angeboten werden, hängt nicht von dem obigen Code ab).

                In der httpd.conf finde ich seltsamerweise nur:

                #AddType application/x-httpd-php .php
                #AddType application/x-httpd-php-source .phps

                Wenn ich die Kommentare lösche und neustarte geht es aber auch nicht.
                Grundsätzlich muss ich aber sagen, dass PHP unter den "normalen" vHosts funktioniert, nur nicht mit einem Aufruf über einen Alias.

                Wie kann ich denn für den Alias mit addtype/addhandler o.Ä. explizit PHP aktivieren?

                1. Hallo Benjamin,

                  Vorneweg: Irgendwo in der Apache-Konfiguration von Dir *muss* entweder noch ein LoadModule oder ein AddHandler stehen - sonst *kann* PHP grundsätzlich nicht funktionieren.

                  Grundsätzlich muss ich aber sagen, dass PHP unter den "normalen" vHosts funktioniert, nur nicht mit einem Aufruf über einen Alias.

                  Wenn es in normalen vHosts geht, in Deinem Alias aber nicht, dann muss in der Definition der vHosts irgend eine weitere Direktive stehen, die den Unterschied ausmacht...

                  Ich glaube so kommen wir nicht weiter, es wäre hilfreich, Du würdest Deine Apache-Konfiguration irgendwo hochladen und hier verlinken (Du kannst ja die Pfade und Hostnamen anonymisieren und nur einen vHost, von dem Du weißt, dass dort PHP funktioniert, exemplarisch angeben).

                  Viele Grüße,
                  Christian

                  --
                  "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
                  1. So, in diesem vHost (wie in allen anderen) funktioniert PHP:

                    <VirtualHost 12.34.56.78:80>
                            ServerName   test.de:80
                            ServerAlias  www.test.de
                            UseCanonicalName Off
                            SuexecUserGroup         ftpu_test psacln
                            ServerAdmin  "test@tesst.com"
                            DocumentRoot /var/www/vhosts/test.de/httpdocs
                            CustomLog  /var/www/vhosts/test.de/statistics/logs/access_log plesklog
                            ErrorLog   /var/www/vhosts/test.de/statistics/logs/error_log
                        <IfModule mod_userdir.c>
                            UserDir /var/www/vhosts/test.de/web_users
                        </IfModule>
                            ScriptAlias  /cgi-bin/ /var/www/vhosts/test.de/cgi-bin/
                            Redirect permanent /plesk-stat https://test.de/plesk-stat
                            Redirect permanent /webstat https://test.de/webstat
                            Redirect permanent /webstat-ssl https://test.de/webstat-ssl
                            Redirect permanent /ftpstat https://test.de/ftpstat
                            Redirect permanent /anon_ftpstat https://test.de/anon_ftpstat
                            <IfModule mod_ssl.c>
                                SSLEngine off
                            </IfModule>
                            <Directory /var/www/vhosts/test.de/httpdocs>
                            <IfModule mod_perl.c>
                            <Files ~ (.pl$)>
                                SetHandler perl-script
                                PerlHandler ModPerl::Registry
                                Options ExecCGI
                                allow from all
                                PerlSendHeader On
                            </Files>
                            </IfModule>
                            <IfModule mod_perl.c>
                            <Files ~ (.asp$)>
                                SetHandler perl-script
                                PerlHandler Apache::ASP
                                PerlSetVar Global /tmp
                            </Files>
                            </IfModule>
                            <IfModule mod_php4.c>
                                php_admin_flag engine on
                                php_admin_flag safe_mode off
                                php_admin_value open_basedir "/var/www/vhosts/test.de/httpdocs:/tmp"
                            </IfModule>
                            <IfModule mod_php5.c>
                                php_admin_flag engine on
                                php_admin_flag safe_mode off
                                php_admin_value open_basedir "/var/www/vhosts/test.de/httpdocs:/tmp"
                            </IfModule>
                            <IfModule mod_python.c>
                            <Files ~ (.py$)>
                                SetHandler python-program
                                PythonHandler   mod_python.cgihandler
                            </Files>
                            </IfModule>
                                Options +Includes +ExecCGI
                            </Directory>
                            Alias "/error_docs" "/var/www/vhosts/test.de/error_docs"
                            ErrorDocument 400 /error_docs/bad_request.html
                            ErrorDocument 401 /error_docs/unauthorized.html
                            ErrorDocument 403 /error_docs/forbidden.html
                            ErrorDocument 404 /error_docs/not_found.html
                            ErrorDocument 500 /error_docs/internal_server_error.html
                        </VirtualHost>

                    Zu diesem vhost habe ich dann den Alias hinzugefügt, wobei eben bei einem Aufruf mit Alias PHP im Verzeichnis, auf das ich mit Alias verweise, nicht funktioniert:

                    Alias /neuera /var/test2
                    http://www.test.de/neuera >> keine PHP!

                    1. Hi,

                      <Directory /var/www/vhosts/test.de/httpdocs>

                      nur für dieses Directory hast Du per

                      <IfModule mod_php4.c>
                                  php_admin_flag engine on
                                  php_admin_flag safe_mode off
                                  php_admin_value open_basedir "/var/www/vhosts/test.de/httpdocs:/tmp"
                              </IfModule>
                              <IfModule mod_php5.c>
                                  php_admin_flag engine on
                                  php_admin_flag safe_mode off
                                  php_admin_value open_basedir "/var/www/vhosts/test.de/httpdocs:/tmp"
                              </IfModule>
                              </Directory>

                      PHP erlaubt (das steht ja innerhalb des Directory-Eintrags).

                      Alias /neuera /var/test2

                      Für /var/test2 hast Du PHP nicht erlaubt.
                      Wenn PHP dort bei obiger Konfiguration funktionieren würde, wäre das m.E. ein Bug im Apache.

                      cu,
                      Andreas

                      --
                      Warum nennt sich Andreas hier MudGuard?
                      Schreinerei Waechter
                      O o ostern ...
                      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    2. Alias funktioniert grundsätzlich auch für Unterverzeichnissen. Wenn es bei Dir für Unterverzeichnisse nicht funktioniert, liegt's an etwas anderem, aber nicht an Alias. Dazu solltest Du mit ein paar Details mehr aus Deiner Konfiguration rausrücken.

      So, es scheint an dem Unterordner zu liegen, auf den ich verweise, er enthält eine egroupware installation, die für sich selbst, korrekt funktioniert, nur beim aufruf über den alias erhalte ich einen download dialog der nichts zurück gibt:

      https://ssldomain.com/meinedomain.de/test geht also
      https://ssldomain.com/meinedomain.de/egroupware geht nicht, obwohl ich egroupware bereits einmal auf shared ssl laufen hatte unter IIS.

      An was kann das liegen?

      1. Hallo,

        So, es scheint an dem Unterordner zu liegen, auf den ich verweise, er enthält eine egroupware installation, die für sich selbst, korrekt funktioniert, nur beim aufruf über den alias erhalte ich einen download dialog der nichts zurück gibt:

        https://ssldomain.com/meinedomain.de/test geht also
        https://ssldomain.com/meinedomain.de/egroupware geht nicht, obwohl ich egroupware bereits einmal auf shared ssl laufen hatte unter IIS.

        An was kann das liegen?

        Keine Ahnung, ich kenne egroupware nicht. Was für einen HTTP-Header liefert Dir der Apache denn zurück?

        Viele Grüße,
        Christian

        --
        "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup