wiki:tips:httpslogin
Различия
Показаны различия между двумя версиями страницы.
wiki:tips:httpslogin [2024/08/09 01:59] – создано vladpolskiy | wiki:tips:httpslogin [2024/08/09 04:01] (текущий) – vladpolskiy | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
======Принудительный вход через HTTPS====== | ======Принудительный вход через HTTPS====== | ||
+ | =====Плагины===== | ||
+ | ====forcessllogin==== | ||
+ | См. https:// | ||
+ | =====Апачи===== | ||
+ | Используя mod_rewrite Apache, можно принудительно использовать HTTPS для входа в DokuWiki, тем самым предотвращая передачу паролей в открытом виде. | ||
+ | |||
+ | Вам также может понадобиться, | ||
+ | |||
+ | <code apache .htaccess> | ||
+ | RewriteCond %{HTTPS} !on | ||
+ | RewriteRule (.*) https:// | ||
+ | </ | ||
+ | |||
+ | Если вы хотите принудительно задать только какой-то определенный URL , сначала прочтите статью [[wiki: | ||
+ | |||
+ | Перенаправление на защищенное соединение, | ||
+ | |||
+ | FIXME Остальная часть параграфа обрабатывает только запросы с ''? | ||
+ | Смотрите обсуждение для решения. | ||
+ | |||
+ | Далее предполагается, | ||
+ | |||
+ | Поскольку вам необходимо настроить куки через HTTPS для работы на HTTP, вам необходимо сначала отключить опцию securecookie . Затем приступайте к настройке перенаправления в вашем '' | ||
+ | |||
+ | <code apache> | ||
+ | # Переключиться на безопасный режим при входе в систему, | ||
+ | RewriteEngine On | ||
+ | RewriteCond %{HTTPS} !on | ||
+ | RewriteCond %{QUERY_STRING} do=(log|profile|admin) | ||
+ | RewriteRule ^(.*) https:// | ||
+ | |||
+ | # Изменить обратно на небезопасный режим при показе действия | ||
+ | RewriteCond %{HTTPS} on | ||
+ | RewriteCond %{QUERY_STRING} !do=(log|profile|admin) | ||
+ | RewriteCond %{REQUEST_METHOD} GET | ||
+ | RewriteRule ^(.*) http:// | ||
+ | </ | ||
+ | |||
+ | Возможно, | ||
+ | |||
+ | Примечания: | ||
+ | |||
+ | * выше переключает обратно на не-SSL только на действии show. Это означает, | ||
+ | * если у вас есть другие правила переписывания, | ||
+ | * Если каталог установки DokuWiki не является корневым каталогом (например, | ||
+ | |||
+ | ====защищенный cookie==== | ||
+ | |||
+ | **Обратите внимание**: | ||
+ | |||
+ | ====nginx==== | ||
+ | |||
+ | Такая настройка также возможна в nginx, но с небольшой доработкой fastcgi_params. | ||
+ | |||
+ | Во-первых, | ||
+ | |||
+ | <code nginx> | ||
+ | # Протестировано с nginx 0.8.5 | ||
+ | # В http-контексте вашей конфигурации nginx | ||
+ | map $scheme $php_https { default off; https on; } | ||
+ | |||
+ | server { | ||
+ | server_name wiki.host.org | ||
+ | root / | ||
+ | index doku.php; | ||
+ | listen 80; | ||
+ | #Enforce https for logins, admin | ||
+ | if ($args ~* do=(log|admin|profile)) { | ||
+ | rewrite ^ https:// | ||
+ | } | ||
+ | include dokuwiki.conf; | ||
+ | } | ||
+ | |||
+ | server { | ||
+ | server_name wiki.host.org; | ||
+ | root / | ||
+ | index doku.php; | ||
+ | listen 443 ssl; | ||
+ | keepalive_requests | ||
+ | keepalive_timeout | ||
+ | ssl_certificate | ||
+ | ssl_certificate_key | ||
+ | #switch back to plain http for normal view | ||
+ | |||
+ | if ($args ~* (do=show|^$)){ | ||
+ | rewrite ^ http:// | ||
+ | } | ||
+ | include dokuwiki.conf; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | В '' | ||
+ | |||
+ | <code nginx> | ||
+ | fastcgi_param HTTPS $php_https; | ||
+ | </ | ||
+ | |||
+ | в ваш fastcgi_params. Этот параметр и '' | ||
+ | |||
+ | Как и в случае с Apache, вам необходимо отключить Securecookie в вашем '' | ||
+ | |||
+ | =====HTTPS на основе PHP===== | ||
+ | Ниже полезно, | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | if ($_SERVER[HTTPS]!=" | ||
+ | // | ||
+ | // Функция ' | ||
+ | // Поэтому постарайтесь использовать не getenv(' | ||
+ | $strURIName= $_SERVER[' | ||
+ | header (" | ||
+ | // Если это не работает для вас и вам нужно устранить неполадки в вашем PHP-коде, | ||
+ | // раскомментируйте ниже, чтобы узнать о ваших конкретных переменных сервера | ||
+ | /* | ||
+ | echo "< | ||
+ | reset($_SERVER); | ||
+ | while (list ($key, $val) = each ($_SERVER)) { | ||
+ | print $key . " = " . $val . "< | ||
+ | } | ||
+ | */ | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | Спасибо. Это спасло мой день! | ||
+ | |||
+ | [[https:// |
wiki/tips/httpslogin.1723157968.txt.gz · Последнее изменение: 2024/08/09 01:59 — vladpolskiy