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

不幸的, 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” , 也就是说只要有符合的证书, 无论是否需要验证, 刚开始都会弹出选择证书的对话框, 很麻烦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值