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 ?
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.
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....
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.
Von diesem beitrag
http://fhemwiki.de/wiki/Apache_Authentication_Proxy
Getan habe ich alles was dort steht...
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
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??
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/ ).
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
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.....
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
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.
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!
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
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
Perfekt! 8) ;)