Apache прослушивает порт 80 и перенаправляет все на https, что обрабатывается stunnel. Если я ввожу аутентификацию, он перенаправляет до того, как он выполнит аутентификацию. Есть ли способ справиться с этим?
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 и 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>
Возможно, было бы намного проще иметь index.html, содержащий перенаправление на хост HTTPS ...