Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[gelöst] apache passwort nur bei ssl
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
ixo
Guru
Guru


Joined: 09 Jul 2005
Posts: 375

PostPosted: Sat Aug 27, 2011 7:50 am    Post subject: [gelöst] apache passwort nur bei ssl Reply with quote

Hallo,

ich bin nicht der große apache Experte und hoffe, dass mir jemand weiterhelfen kann :-) .

Ich habe einen apache laufen. Diesen möchte ich intern über http ohne Passwort im Zugriff haben und von außen über https mit Passwort-Abfrage.

Ich habe eigene Zertifikate angelegt und in /etc/apache2/vhosts.d/default_vhost.include die Einträge hinzugefügt:

Code:
        AllowOverride All
         
        # Controls who can get stuff from this server.
        Order allow,deny
        Allow from all
       
        AuthType Basic
        AuthName "Geschuetzter Bereich"
        AuthUserFile /etc/apache2/htpasswd
        Require valid-user

Das funktioniert alles (daher auch die sehr knappe Beschreibung). Das Passwort wird abgefragt.

Frage: Wie bekomme ich den apache dazu, dass Passwort nur bei SSL Verbindungen abzufragen? (http ist von außen aufgrund Firewall / forwarding nicht möglich).
Falls die Unterscheidung über http/https nicht geht oder kompliziert ist, wäre auch eine Unterscheidung über Netzwerksegmente ok.

Danke und viele Grüße, ixo


Last edited by ixo on Sun Sep 04, 2011 8:57 am; edited 1 time in total
Back to top
View user's profile Send private message
root_tux_linux
l33t
l33t


Joined: 21 Dec 2003
Posts: 966

PostPosted: Sun Aug 28, 2011 9:33 am    Post subject: Re: apache passwort nur bei ssl Reply with quote

Wenn du HTTP und HTTPS Anfragen getrennt haben willst dann setz einfach verschiedene DocumentRoots jeweils in 00_default_ssl_vhost.conf und 00_default_vhost.conf.

Danach musst du einfach die .htaccess im z.B. /var/www/localhost/ssl ablegen und schon kommt bei jeder Anfrage mittles https://foobar.fo die Passwortabfrage und http://foobar.fo halt keine Passwortabfrage.



Beispiel:

Code:
        DocumentRoot /var/www/localhost/html
        <Directory />
                Options -Indexes FollowSymLinks
                AllowOverride None
        </Directory>


Code:
        DocumentRoot /var/www/localhost/ssl
        <Directory />
                Options -Indexes FollowSymLinks
                AllowOverride None
        </Directory>

_________________
Intel Core i7 6700K@4.6GHz, Gigabyte GTX 980 Ti G1, Gigabyte Gaming 7, Hyper X Fury 32GB, 2 TB Samsung EVO 840 Basic
ASUS ROG Swift PG348Q Display
ASUS ROG ASUS G771JW Notebook
Back to top
View user's profile Send private message
ixo
Guru
Guru


Joined: 09 Jul 2005
Posts: 375

PostPosted: Fri Sep 02, 2011 12:43 pm    Post subject: Reply with quote

Hallo root_tux_linux,

erst 'mal danke für den Tipp - so ganz kapier ich ihn aber nicht :oops: .

Ich antworte übrigens erst jetzt, weil ich die ganze Woche unterwegs war :( .

Also, in /etc/apache2 gibt:

Code:
# grep -r DocumentRoot .
./original/extra/httpd-ssl.conf:DocumentRoot "/var/www/localhost/htdocs"
./original/extra/httpd-vhosts.conf:    DocumentRoot "/usr/docs/dummy-host.example.com"
./original/extra/httpd-vhosts.conf:    DocumentRoot "/usr/docs/dummy-host2.example.com"
./original/httpd.conf:# DocumentRoot: The directory out of which you will serve your
./original/httpd.conf:DocumentRoot "/var/www/localhost/htdocs"
./original/httpd.conf:# This should be changed to whatever you set DocumentRoot to.
./original/httpd.conf:    # access content that does not live under the DocumentRoot.
./extra/httpd-ssl.conf:DocumentRoot "/var/www/localhost/htdocs"
./extra/httpd-vhosts.conf:    DocumentRoot "/usr/docs/dummy-host.example.com"
./extra/httpd-vhosts.conf:    DocumentRoot "/usr/docs/dummy-host2.example.com"
./apache2.conf:# DocumentRoot: The directory out of which you will serve your
./apache2.conf:DocumentRoot "/var/www/localhost/htdocs"
./apache2.conf:# This should be changed to whatever you set DocumentRoot to.
./apache2.conf:    # access content that does not live under the DocumentRoot.
./vhosts.d/default_vhost.include:# DocumentRoot: The directory out of which you will serve your
./vhosts.d/default_vhost.include:DocumentRoot "/var/www/localhost/htdocs"
./vhosts.d/default_vhost.include:# This should be changed to whatever you set DocumentRoot to.
./vhosts.d/default_vhost.include:   # access content that does not live under the DocumentRoot.


Hier muss ich dann wahrscheinlich nichts ändern!?

Die Datei 00_default_ssl_vhost.conf sieht so aus:
Code:
# perl -p -e 's/^\s*#.*//' < 00_default_ssl_vhost.conf | perl -p -e 's/^\s*$//'
<IfDefine SSL>
<IfDefine SSL_DEFAULT_VHOST>
<IfModule ssl_module>
Listen 443
<VirtualHost _default_:443>
   ServerName localhost
   Include /etc/apache2/vhosts.d/default_vhost.include
   ErrorLog /var/log/apache2/ssl_error_log
   <IfModule log_config_module>
      TransferLog /var/log/apache2/ssl_access_log
   </IfModule>
   SSLEngine on
   SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
   SSLCertificateFile /etc/ssl/apache2/server.crt
   SSLCertificateKeyFile /etc/ssl/apache2/server.key
   <FilesMatch "\.(cgi|shtml|phtml|php)$">
      SSLOptions +StdEnvVars
   </FilesMatch>
   <Directory "/var/www/localhost/cgi-bin">
      SSLOptions +StdEnvVars
   </Directory>
   <IfModule setenvif_module>
      BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
   </IfModule>
   <IfModule log_config_module>
      CustomLog /var/log/apache2/ssl_request_log \
         "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
   </IfModule>
</VirtualHost>
</IfModule>
</IfDefine>
</IfDefine>


Die Datei 00_default_vhost.conf sieht so aus:
Code:
 # perl -p -e 's/^\s*#.*//' < 00_default_vhost.conf | perl -p -e 's/^\s*$//'
<IfDefine DEFAULT_VHOST>
Listen 80
NameVirtualHost *:80
<VirtualHost *:80>
   ServerName localhost
   Include /etc/apache2/vhosts.d/default_vhost.include
   <IfModule mpm_peruser_module>
      ServerEnvironment apache apache
   </IfModule>
</VirtualHost>
</IfDefine>


Die Datei default_vhost.include so:
Code:
# perl -p -e 's/^\s*#.*//' < default_vhost.include | perl -p -e 's/^\s*$//'
ServerAdmin root@localhost
DocumentRoot "/var/www/localhost/htdocs"
<Directory "/var/www/localhost/htdocs">
   Options Indexes FollowSymLinks
   AllowOverride All
   Order allow,deny
   Allow from all
</Directory>
<IfModule alias_module>
   ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
</IfModule>
<Directory "/var/www/localhost/cgi-bin">
   AllowOverride None
   Options None
   Order allow,deny
   Allow from all
</Directory>


Wo muss ich die von Dir genannten Definitionen einfügen?

Wie schon geschrieben - ich bin, was apache angeht, ziemlich unbedarft.

Danke und viele Grüße, ixo
Back to top
View user's profile Send private message
gimpel
Advocate
Advocate


Joined: 15 Oct 2004
Posts: 2720
Location: Munich, Bavaria

PostPosted: Sat Sep 03, 2011 10:40 am    Post subject: Reply with quote

Wenn du Auth basic nur für den SSL-Vhost willst, dann füge in deiner 00_default_ssl_vhost.conf einene Direktive hinzu nach dem "Include ..."
Code:
<Directory "/var/www/localhost/htdocs">
        AuthType Basic
        AuthName "Geschuetzter Bereich"
        AuthUserFile /etc/apache2/htpasswd
        Require valid-user
</Directory>


Wenn du es in der default_vhost.include machst, zieht es für beide vhosts, wie du bereits gemerkt hast.

Das mit den 2 Document roots ist nicht nötig, dann müsste man ja den content doppelt, und dazu noch .htaccess Dateien pflegen.
_________________
http://proaudio.tuxfamily.org/wiki - pro-audio software overlay
Back to top
View user's profile Send private message
ixo
Guru
Guru


Joined: 09 Jul 2005
Posts: 375

PostPosted: Sun Sep 04, 2011 4:25 am    Post subject: Reply with quote

Danke,

klappt so - klingt ja auch nicht gerade unlogisch. So ist es auf jeden Fall sinnvoller.

Doppelt zu pflegen hätte man es nach der Methode weiter oben aber m.E. auch nicht gemusst. Da werden symbolic links eingesetzt. (Falls das nicht gehen würde, hätte ich mit mount --bind den Kram nochmal eingeblendet, was natürlich eher noch unschöner gewesen wäre.)

Viele Grüße, ixo
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum