Назад | Перейти на главную страницу

Как добавить проверки для нескольких конкретных ssl_client_fingerprints в конфигурацию Nginx?

В дополнение к обычной проверке цепочки CA мне бы хотелось, чтобы Nginx server раздел, чтобы разрешить только отпечатки определенных сертификатов клиента.

Я мог найти, как проверить один отпечаток пальца, но я не уверен, как объединить несколько отпечатков пальцев, потому что Nginx не поддерживает or, и map не допускается внутрь server разделы.

Итак, теперь у меня есть уродливый обходной путь вроде этого:

    ssl_client_certificate /usr/local/share/ca-certificates/trusted_chain.pem;
    ssl_verify_client on;
    ssl_verify_depth 3;

    if ( $ssl_client_fingerprint = "12a4f0abc935cc0dd0f6fdcc0d56682d7f5c15a1" ) {
        set $whiteclient 1;
    }
    if ( $ssl_client_fingerprint = "12a4f0abc935cc0dd0f6fdcc0d56682d7f5c15a2" ) {
        set $whiteclient 1;
    }
    if ( $ssl_client_fingerprint = "12a4f0abc935cc0dd0f6fdcc0d56682d7f5c15a3" ) {
        set $whiteclient 1;
    }
    if ( $whiteclient != 1 ) {
         return 403;
    }

Есть ли лучший способ сделать это?