Apache-2.2
apache 身份驗證通道
Apache 正在偵聽埠 80 並將所有內容重定向到由 stunnel 處理的 https。如果我在其中進行身份驗證,它會在進行身份驗證之前重定向。有沒有辦法處理這個?
Listen 80 <VirtualHost *:80> RewriteEngine On RewriteRule ^(.*) https://%{HTTP_HOST}$1 <Directory /*> AuthType Basic AuthName "Stooges Web Site: Login with email address" AuthLDAPURL ldap://localhost:389/o=stooges?mail require valid-user </Directory> </VirtualHost>
更新:我使用 stunnel 而不是 apache,因為 apache 無法使用 ssl 處理 websocket,而 stunnel 可以。
僅當有人訪問 HTTP 伺服器的起始頁時才會進行身份驗證,但是由於您已經開始將每個人從 HTTP 站點重定向到 HTTPS 站點,因此您將永遠無法到達該目錄。
最好的辦法是將身份驗證放在 HTTPS 站點的配置中,但如果你不能這樣做,我認為你應該能夠使用 RewriteCond 使其工作。我自己並沒有真正嘗試過,但這裡有一個例子可以幫助你:
Listen 80 <VirtualHost *:80> RewriteEngine On RewriteCond %{AUTH_TYPE} Basic RewriteRule ^(.*) https://%{HTTP_HOST}$1 <Directory /*> AuthType Basic AuthName "Stooges Web Site: Login with email address" AuthLDAPURL ldap://localhost:389/o=stooges?mail require valid-user </Directory> </VirtualHost>
可能只有一個包含重定向到 HTTPS 主機的 index.html 會容易得多……