nginx 客户端证书位置块

nginx 客户端证书位置块

如何通过 nginx 对文件夹使用客户端证书身份验证?该ssl_client_certificate指令不允许以location块形式出现。示例:我希望me.tld所有客户端都可以访问我的网站,而下面的所有内容me.tld/secure/只能由经过身份验证的客户端访问。

答案1

我自己没法尝试,但你可以尝试以下方法

您需要ssl_verify_client optional;沿着旁边走ssl_client_certificate,然后使用以下位置块

location /secure {
    error_page 418 = @other;
    recursive_error_pages on;
    if ($ssl_client_verify = SUCCESS) {
    return 418
    }

location @other {
    #Secure Config goes here
    }

客户端证书将被检查,但不会强制执行所有位置。当有人尝试目录时,/securenginx 将检查是否$ssl_client_verify在该级别成功server。如果成功,则会出现return错误418,我们告诉 nginx 在该位置处理该错误@other

相关内容