HTTPS 인증을 강제하는 가장 좋은 방법은 무엇입니까? 디렉토리에 HTTPS를 강제하고 HTTPS 인증을 강제하는 방법
내 htaccess로 파일이이
: 는AuthType Basic
AuthName "Developer"
AuthUserFile /usr/local/etc/apache22/passwords/passwords
Require user david
인증은 작동하지만, 맑은에 암호를 보내는 포트 80을 통해 인증합니다.
그래서 나는 동등한 HTTPS 요청에 대한 모든 비 HTTPS 요청 리디렉션 리디렉션 규칙을 추가 할 생각 :
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteBase /~david/
RewriteRule ^(.*)$ https://myserver.tld/~david/$1 [R,L]
이것은 또한 작동을하지만, 포트 80에 첫 authenicates 후 리디렉션, 다시 authenicates 암호는 일반 텍스트로 보내 지므로 포트 80에서 인증하고 싶지 않습니다. 나는 HTTPS로 바로 리다이렉션 할 수있는 좋은 방법을 찾아 낼 수 없었다.
<?php
header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
?>
이는 내 서버의 /에 403.php의 PHP 스크립트를
AuthType Basic
AuthName "Developer"
AuthUserFile /usr/local/etc/apache22/passwords/passwords
Require user david
ErrorDocument 403 /403.php
SSLRequireSSL
그리고 가지고 : 나는이 작업을 수행하는 방법을 알아낼 수
있는 유일한 방법은이 일을하는 것입니다 원하는 행동. SSL이 필요하므로 포트 80에서 디렉토리에 액세스하려고하면 사용자 정의 오류 문서가 출력되고 해당 문서는 HTTPS로 리디렉션됩니다.
이것은 마치 진흙탕처럼 보입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
나는 그것이 옳다고 생각한다. 그것이 최선의 방법입니다. – bmb