Zum erzwingen von HTTPS auf ein Verzeichnis UND die Kraft, die HTTPS-Authentifizierung
Frage ich mich, was der beste Weg, um zu erzwingen, HTTPS-Authentifizierung.
Wenn ich dieses in meine .htaccess-Datei:
AuthType Basic
AuthName "Developer"
AuthUserFile /usr/local/etc/apache22/passwords/passwords
Require user david
Authentifizierung funktioniert, aber die Authentifizierung über port 80 senden Sie das Kennwort im Klartext.
So, ich dachte, ich würde hinzufügen einer Redirect-Regel umleiten, alle nicht-HTTPS-Anfragen auf HTTPS-Anforderungen entspricht:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteBase /~david/
RewriteRule ^(.*)$ https://myserver.tld/~david/$1 [R,L]
Diese auch funktioniert, aber die ersten authenicates auf port 80 leitet dann, dann authenicates wieder auf port 443. Ich will NICHT zur Authentifizierung auf port 80, da das Kennwort wird in Klartext gesendet. Ich habe nicht in der Lage gewesen, um herauszufinden, eine gute Möglichkeit zum umleiten sofort auf HTTPS und dann authenicate.
Nur so konnte ich herausfinden, wie man dies zu tun ist, dies zu tun:
AuthType Basic
AuthName "Developer"
AuthUserFile /usr/local/etc/apache22/passwords/passwords
Require user david
ErrorDocument 403 /403.php
SSLRequireSSL
Werden und eine 403.php PHP-Skript auf die /meine server:
<?php
header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
?>
Ist dies das gewünschte Verhalten. Es erfordert SSL, so dass, wenn Sie versuchen, Zugriff auf das Verzeichnis auf port 80, es spuckt einen benutzerdefinierten Fehler-Dokuments, und das Dokument leitet die Seite auf HTTPS.
Scheint dies ein Schlamassel. Gibt es einen besseren Weg, dies zu erreichen?
- Ich glaube, du hast Recht. Das ist der beste Weg.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also das Problem, das Sie haben ist, dass Ihre oder block jetzt gilt sowohl für die HTTPS-und HTTP-Fall. Sie brauchen entwirren dieses (naja, eigentlich - man könnte auch "erfüllen" - aber das ist ein bisschen chaotisch in diesem Fall).
Einer einfach zu Debuggen/verstehen Ansatz ist zu gehen, um eine Struktur wie:
und nehmen die Dinge von dort aus.
Dw.