nginx는 ssl_certificate 경로에서 $ server_name을 사용합니다.


33

파일 경로에 변수 이름을 어떻게 사용할 수 있습니까?

ssl_certificate /home/ec2-user/.certificados/$server_name.crt;
ssl_certificate_key /home/ec2-user/.certificados/$server_name.key;

답변:


37

모든 지시문에 변수를 사용할 수는 없습니다. 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 도 참조하십시오 .


6
변수 지원 ssl_certificatessl_certificate_key오늘 추가되었습니다! nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate
Andrew Brown

6

nginx 1.15.9 부터 변수를 사용할 수 있습니다 (2019 년 2 월 26 일)

변수를 사용한다는 것은 각 SSL 핸드 셰이크마다 인증서가로드됨을 의미하며 이는 성능에 부정적인 영향을 줄 수 있습니다.

그러나 nginx 1.15.12 (2019 년 4 월 16 일) 의 변경 사항에 유의하십시오 .

버그 픽스 : 변수가 "ssl_certificate"또는 "ssl_certificate_key"지시문에 사용되고 OCSP 스테이플 링이 활성화 된 경우 작업자 프로세스에서 세그먼테이션 결함이 발생할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.