我有两个 SSL 证书,foo.crt
和bar.crt
。两个证书使用相同的密钥。foo.key
我希望我的 Nginxfoo.crt
在客户端 IP 匹配时发送 SSL 证书192.168.1.0/24
,而bar.crt
在不匹配时发送。
我尝试使用 Geo 模块和if
指令,如下所示:
geo $local {
default 0;
192.168.1.0/24 1;
}
...
server {
ssl_certificate bar.crt;
ssl_certificate_key foo.key;
if ($local) {
ssl_certificate foo.crt;
}
...
}
但是,Nginx 给出了错误"ssl_certificate" directive is not allowed here
。
有没有不用指令就能做到这一点的方法if
?
答案1
也许是这样的(未经测试):
geo $cert {
default bar.crt;
192.168.1.0/24 foo.crt;
}
...
server {
ssl_certificate $cert;
ssl_certificate_key foo.key;
...
}