Answers:
您不能在每个指令中使用变量。ssl_certificate
被视为文字字符串,并且是许多不支持变量的指令之一。
要为主机指定不同的证书,必须在服务器块中显式地写入它:
server {
server_name example.com;
ssl_certificate /home/ec2-user/.certificados/example.com.crt;
ssl_certificate_key /home/ec2-user/.certificados/example.com.key;
# ...
}
server {
server_name example.net;
ssl_certificate /home/ec2-user/.certificados/example.net.crt;
ssl_certificate_key /home/ec2-user/.certificados/example.net.key;
# ...
}
# ...
如果您不满意复制配置,请创建模板并使用这些模板生成nginx配置。另请参见http://nginx.org/en/docs/faq/variables_in_config.html。
自nginx 1.15.9起(2019年2月26日),您可以使用变量
请注意,使用变量意味着每次SSL握手都会加载一个证书,这可能会对性能产生负面影响
但是请注意nginx 1.15.12的更改(2019年4月16日):
错误修正:如果在“ ssl_certificate”或“ ssl_certificate_key”指令中使用了变量,并且启用了OCSP装订,则可能在工作进程中发生分段错误。
ssl_certificate
和ssl_certificate_key
今天加入! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate