1

Согласно собственной документации, if есть зло. Они привели несколько примеров того, что определенные конфигурации не будут работать, если используется директива if . Они не вдавались в подробности о том, почему он ведет себя не так, как может ожидать пользователь, или приводят примеры того, как переписать эти экземпляры.

То , что они делают , однако, сделать ссылку на эту статью, которая дает элементарное объяснение , что if -directive в location -directive создает другое «псевдо- location который игнорирует другие блоки location

Однако примеры кажутся мне нелогичными, даже с объяснениями. Поэтому я хотел знать, безопасна ли моя конкретная конфигурация, и если нет, то как ее лучше переписать. Конечно, я провел собственное тестирование, и, похоже, оно ведет себя правильно. В следующем примере показан только соответствующий файл конфигурации:

ssl_client_verify optional;

location /public {
    try_files $uri $uri/ =404;
}

location / {
    if ($ssl_client_verify != SUCCESS)
    {
        return 403;
    }
    try_files $uri $uri/ =404;
}

Моя главная проблема безопасности заключается в том, что я хочу не раскрывать содержимое, которое не является /public кому-либо, у кого нет действующего сертификата.

0