Problem mit Apache2 Proxy-Pass

Begonnen von Henno, 22 Januar 2016, 17:27:48

Vorheriges Thema - Nächstes Thema

Henno

Hi,

ich bin die Anleitung jetzt bestimmt 20 mal durchgegangen und finde das Problem einfach nicht.

config datei liegt unter /etc/apache2/conf-available/ habe aber auch schon /etc/apache2/conf.d/ versucht

System:
Intel i3
Ubuntu 15.10
Apache 2.4.12
Ownloud (https)
Plex (https)

Fhem 8083 mit HTTPS und gültigem Zertifikat Port offen
Fhem 8084 für interne verwendung (kindle display usw.) Port geschlossen
Fhem 8085 für Apache proxy ohne global

unter ip/fhem gibts keine verbindung
https://ip/fhem gibts 404

Apache2 selbst läuft und komme auf https://ip/owncloud



Hat jemand eine idee ?



rapster

Hilfreich wenn du uns deine Vhost-Konfig noch zeigen würdest ;-)

PS, eine in conf-available abgelegt konfig muss noch mit ln -s nach conf-enabled aktiviert werden.

Henno

Hi,

dabke für den Hinweis.
Nach dem verlinkten in conf-enabled klappt es jetzt.
Zumindest wird eine Verbindung hergestellt, jedoch kann ich mich nicht anmelden.

Den user habe ich ja in /etc/fhem-htpasswd gesetzt.
Aber wo vergeben ich das PW?


Den Hinweis das die config noch aktiviert werden muss sollte man ins Wiki aufnehmen....

rapster

Ich weiss leider nicht von welchem Wiki Eintrag oder Anleitung du redest.
Und solange du nicht mitteilst was genau du bereits getan hast und wie du deinen apache vhost konfiguriert hast, kann dir schwer geholfen werden.

Henno


rapster

Ich finde die Lösung im verlinkten Beitrag nicht wirklich überzeugend.
Auch wird diese nach kurzer Durchsicht ohne Anpassungen nicht bei Apache 2.4 funktionieren.

Du könntest dir z.B. eine alternative Apache-Konfiguration ansehen: http://forum.fhem.de/index.php?topic=29909.0

Henno

Hallo Rapster

ich habe mir das mal angeschaut.

Ich glaube ich hab mir mittlerweile irgendwas zerschossen.

Jan 22 20:39:50 Server apache2[6978]: AH00548: NameVirtualHost has no effect and will be removed in the next release /...conf:6
Jan 22 20:39:50 Server apache2[6978]: AH00112: Warning: DocumentRoot [/ram/fhem/apache.www] does not exist
Jan 22 20:39:50 Server apache2[6978]: AH00526: Syntax error on line 21 of /etc/apache2/sites-enabled/fhem.conf:
Jan 22 20:39:50 Server apache2[6978]: Invalid command 'AuthFormProvider', perhaps misspelled or defined by a module no...ration
Jan 22 20:39:50 Server apache2[6978]: Action 'configtest' failed.


Ja /ram/fhem ist richtig

wo kommt diese apache.www her??

rapster

Hallo Henno,

das apache.www ist z.B. in der DocumentRoot und Directory Directive des vhosts zu finden.
Hierbei handelt es sich um den freigegeben www-Ordner des Apache, standardmäßig meist /var/www
Du musst die Pfadangaben in der .conf Datei noch alle entsprechend anpassen.

Die Fehlermeldung zu AuthFormProvider kommt vermutlich daher dass das benötigte Modul mod_auth_form nicht geladen ist.
In dem verlinkten Thread habe ich einige Module aufgelistet welche aktiviert werden müssen (z.B. so: http://www.debuntu.org/how-to-enable-apache-modules-under-debian-based-system-page-2/ ).

Henno

#8
Edit:

wenn ich versuche zu connecten bekomme ich 401 werde aber nicht nach login daten gefragt.
lauf Apache log:
AH01630: client denied by server configuration: /ram/fhem/apache.www


wenn ich die PW abfrage raus nehme :


AuthType configured with no corresponding authorization directives

Henno

Hi,

hier mal meine aktuelle Vhost.

root@Server:/etc/apache2/sites-enabled# cat 000-default-le-ssl.conf
<VirtualHost *:80>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}  [L]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
ServerName Henno.wtf
        DocumentRoot /ram/fhem/apache.www

        <Directory /ram/fhem/apache.www>
                Options FollowSymLinks
                Require all granted
        </Directory>

        SSLEngine on
        SSLProxyEngine on

        <Proxy *>
                AuthFormProvider file
                AuthType form
                AuthName "FHEM - Home, Sweet Home"
                Session On
                SessionCookieName session path=/
                SessionCryptoPassphrase meinGanzGeheimerVerschluesselungsSchluessel
                SessionCryptoCipher aes256
                require valid-user
                ErrorDocument 401 /ram/fhem/fhemLogin.html
                AuthUserFile "/ram/fhem/apache.htpasswd"
        </Proxy>

        RewriteEngine On
        RewriteCond %{HTTP_USER_AGENT} .*iPhone.* [NC]
        RewriteCond %{REQUEST_URI} !^/fhemLogin.html$
        RewriteRule (.*) http://127.0.0.1:8084%{REQUEST_URI} [P,END]
        RewriteCond %{REQUEST_URI} !^/fhemLogin.html$
        RewriteRule (.*) https://127.0.0.1:8083%{REQUEST_URI} [P,END]
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/xxxx-0001/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxxx-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
</IfModule>




Die Ordner stimmen, was jedoch noch immer im fhem Ordner fehlt ist die apache.www


Im Browser bekomme ich 401

Apache log sagt

Sat Jan 23 13:23:56.182434 2016] [authz_core:error] [pid 30426] [client 192.168.178.29:49355] AH01630: client denied by server configuration: /ram/fhem/apache.www, referer: https://192.168.178.3/

ich habe auch schon mal HTTPS in FHEM deaktiviert, jedoch der gleiche fehler.....

rapster

Hi Henno,

401 Fehler ist OK, das soll so sein, nur soll hier nicht die normale Fehler Seite auftauchen, sonder die Login-Form.

Das passiert nicht, da du diese Directive falsch hast, anstatt
ErrorDocument 401 /ram/fhem/fhemLogin.html
muss das z.B.
ErrorDocument 401 /fhemLogin.html
lauten.

Und die Datei fhemLogin.html in deinem Documentroot abgelegt werden.
Also in deinem Fall /ram/fhem/apache.www/

Anschließend sollte die Login-Form schonmal angezeigt werden, wenn der Rest passt, sollte der Rest dann auch funktionieren, oder du sagst nochmal bescheid :)

Gruß
  Claudiu

rapster

Zitat von: Henno am 23 Januar 2016, 13:30:36
Die Ordner stimmen, was jedoch noch immer im fhem Ordner fehlt ist die apache.www

Den Ordner musst du selber anlegen.
Und die Gruppe www-data oder der user www-data muss hier Leseberechtigungen besitzen.

Alternativ kannst du auch den Apache-Standardordner /var/www verwenden und deine Konfig entsprechend anpassen.

Henno

Habs jetzt am laufen.
Ich hatte das mit der Apache.www nicht verstanden.
Ich dachte das ist eine Datei!

Jetzt klappt alles soweit.
Jedoch nur mit https://domain.xxx/fhem
Ohne das /fhem komme ich auf die Apache sample page.
Aber ich glaube das bekomme ich gleich noch hin.


Vielen dank für deine Hilfe!

rapster

Der verlinkte Thread ist schon ziemlich alt, ich werde mal nächste Woche einen Wiki-Eintrag für den Apache 2.4 Reverse Proxy mit verschiedenen Authentifizierungsmethoden (Form/Basic/Zertifikat) und Schritt für Schritt Anleitung machen.

Versuch mal bitte ans Ende noch für die jeweiligen Fhem Ports folgendes anzuhängen:

....
        ProxyPassReverse / http://127.0.0.1:8083
        ProxyPassReverse / http://127.0.0.1:8084
        ProxyPassReverse / http://127.0.0.1:8085

</VirtualHost>


Gruß
  Claudiu

Henno

Habs grade mal versucht.
Damit wird dann https://domain.xxx direkt nach https://domain.xxx/fhem geleitet.
Login klappt auch gut

Jetzt komme ich endlich auch aus unserem Firmennetz auf mein FHEM.

Vielen Dank