Nginx 的ssl_client_certificate
和ssl_trusted_certificate
指令可用于允许由给定颁发机构签名的客户端证书。但我如何允许特定证书?我想按证书指纹进行过滤,或者按证书颁发机构 + 客户端证书序列号进行过滤。
答案1
$ssl_client_fingerprint
Nginx 可以访问和中的客户端证书指纹和序列号$ssl_client_serial
,以及 中的颁发者的 DN $ssl_client_i_dn
。请参阅这个文件了解详情。
您可以使用 过滤指纹map
。
例如:
map $ssl_client_fingerprint $reject {
default 1;
87654321abcdef9876543210fedcba123456789a 0;
fe8765432176543210fedcba12345678abcdef98 0;
}
server {
...
if ($reject) { return 403; }
...
}