关于nginx开启特定路径的ssl证书验证

本文介绍如何在Nginx中实现特定路径的SSL客户端验证。由于Nginx不直接支持这一特性,文章提供了一种绕过此限制的方法,通过设置ssl_client_certificate等指令并结合location块内的条件判断来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不幸的, nginx不支持特定路径开启ssl_verify_client, 如果在location下面使用ssl_verify_client, 就会提示

nginx: [emerg] “ssl_verify_client” directive is not allowed here

某处看到的说法是

path based client ssl verification is messy as it requires the client/server to do a (secure) renegotiation.

You’re better off doing a separate domain or make it ssl_verify_client optional at the top level and check the compliance at application level.

我们该怎么办呢?

方法是有的, 通过如下配置即可 “特定路径开启ssl_verify_client”。

1
2
3
4
5
6
7
8
9
ssl_client_certificate 用于验证客户端的证书的证书的路径;
ssl_verify_client optional;
ssl_verify_depth 5;
location ~ 一个匹配需要证书验证的路径的正则表达式 {
     if ( $ssl_client_verify != SUCCESS) {
         return 403;
         break;
     }
}

考察 “ssl_verify_client optional” , 也就是说只要有符合的证书, 无论是否需要验证, 刚开始都会弹出选择证书的对话框, 很麻烦。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值