1

Тема: PunBB nginx + apache + ssl

Добрый день.

У кого-то связка nginx + ssl + apache совместно с punbb корректно работает ?
Никак не могу заставить - уже все перепробовал.

Маркер безопасности задолбал. Я так понимаю, что url содержит https, но nginx пробрасывает на апач уже по http - и из-за этого весь сыр бор sad

Переменные
[SERVER_PORT] => 80
[HTTPS] => on
[HTTP_X_FORWARDED_PROTO] => https

Копать, наверное, нужно эту функцию ?


// Try to determine the current URL
function get_current_url($max_length = 0)
{
        $return = ($hook = get_hook('fn_get_current_url_start')) ? eval($hook) : null;
        if ($return != null)
                return $return;

        $protocol = (!isset($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) == 'off') ? 'http://' : 'https://';
        $port = (isset($_SERVER['SERVER_PORT']) && (($_SERVER['SERVER_PORT'] != '80' && $protocol == 'http://') || ($_SERVER['SERVER_PORT'] != '443' && $protocol == 'https://'
)) && strpos($_SERVER['HTTP_HOST'], ':') === false) ? ':'.$_SERVER['SERVER_PORT'] : '';

        $url = $protocol.$_SERVER['HTTP_HOST'].$port.$_SERVER['REQUEST_URI'];

        if (strlen($url) <= $max_length || $max_length == 0)
                return $url;

        // We can't find a short enough url
        return null;
}

Добавлено спустя 14 минут 54 секунды:

Приписал в nginx

<------><------><------>proxy_set_header Host $host:$server_port;
<------><------><------>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
<------><------><------>proxy_set_header X-Forwarded-Proto $scheme;
<------><------><------>proxy_set_header X-Real-IP $remote_addr;
<------><------>}


вообще не могу написать ответ в теме - получаю ошибку безопасности.
сделал echo url - ссылка формируется вида https://btx.logan.in.ua:443/forum/new-reply17420.html  т.е. вроде правильно

Добавлено спустя 17 минут 36 секунд:

логин проходит после подтверждения маркера

Добавлено спустя 22 минуты 57 секунд:

В функцию generate_form_token передается target_url https://btx.logan.in.ua/forum/new-reply17420.html

Добавлено спустя 29 минут 57 секунд:

Передается он с form_action - а там https://btx.logan.in.ua/forum/new-reply17420.html , т.е. никакого 443 порта нет.

Добавлено спустя 40 минут 31 секунду:

В общем, пока вылечил так

в nginx оставил

proxy_set_header Host $host;

т.е. переменная на форуме осталась [SERVER_PORT] => 80

А в функции get_curent_url заменил

//<---->$url = $protocol.$_SERVER['HTTP_HOST'].$port.$_SERVER['REQUEST_URI'];

на
<------>$url = $protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
т.е. убрал подстановку порта в урл

т.е. теперь все формируется правильно во всех местах -  https://btx.logan.in.ua/forum/new-reply17420.html

Может кто глянет - это ничем не чревато для безопасности ?

Сайт Zevs

Поделиться

2 (30.12.2016 01:11 отредактировано Visman)

Re: PunBB nginx + apache + ssl

Zevs, создайте расширение, в нем хук fn_get_current_url_start с кодом

unset($_SERVER['SERVER_PORT']);

и подключите его.
Это чтобы код движка не менять.

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

3

Re: PunBB nginx + apache + ssl

Visman, ок. попробую. Спасибо !

Сайт Zevs

Поделиться

4

Re: PunBB nginx + apache + ssl

Посмотрел на одном форуме, там в config.php стоит:

$_SERVER['HTTPS'] = 'on';
$_SERVER['SERVER_PORT'] = '443';

и всё работает

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

5

Re: PunBB nginx + apache + ssl

hcs, тогда достаточно в том же конфиге прописать

unset($_SERVER['SERVER_PORT']);
Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

6

Re: PunBB nginx + apache + ssl

У меня на nginx и без всего этого работает. Правда с конфигом парился достаточно долго. Но теперь все нормально.

Сайт nihi1ist

Поделиться