В дополнение к обычной проверке цепочки 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;
}
Есть ли лучший способ сделать это?