如何在 Nginx 中允许特定的 SSL 客户端证书?

如何在 Nginx 中允许特定的 SSL 客户端证书?

Nginx 的ssl_client_certificatessl_trusted_certificate指令可用于允许由给定颁发机构签名的客户端证书。但我如何允许特定证书?我想按证书指纹进行过滤,或者按证书颁发机构 + 客户端证书序列号进行过滤。

答案1

$ssl_client_fingerprintNginx 可以访问和中的客户端证书指纹和序列号$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; }
    ...
}

这个文件了解详情,以及这种警告关于 的使用if

相关内容