nginx客户端证书位置块

我如何使用nginx的客户端证书身份validation文件夹? location块中不允许ssl_client_certificate指令。 例如:我希望我的网站me.tld可以被所有的客户端和me.tld/secure/下的所有东西都可以访问,只有通过身份validation的客户端。

我无法亲自尝试,但可以尝试以下操作

您将需要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 } 

客户端证书将被检查,但不是为所有地点强制执行。 当有人尝试/secure目录时,nginx会检查$ssl_client_verifyserver级是否成功。 如果是,它会return错误418 ,我们告诉nginx在@other位置处理。