回答:
すべてのディレクティブで変数を使用することはできません。ssl_certificate
はリテラル文字列として扱われ、変数がサポートされていない多くのディレクティブの1つです。
ホストに異なる証明書を指定するには、サーバーブロックに明示的に書き込む必要があります。
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