무슨 일이 일어나고 있는지 확실하지 않지만 다음은 작동합니다.
ssl_certificate /etc/ssl/tld/$ssl_server_name/ssl.crt;
그리고 이것은 실패합니다:
set $cert $ssl_server_name;
ssl_certificate /etc/ssl/tld/$cert/ssl.crt;
실제 사례는 다음과 같습니다. 내 인증서는 TLD별로 폴더에 있습니다(묻지 마세요).
map $ssl_server_name $tld {
~^(.+\.)*(.+)$ $2;
default $ssl_server_name;
}
하지만 .만 사용할 수 있는 것 같습니다 $ssl_server_name
. 다른 것은 실패합니다.
*1 cannot load certificate "/etc/ssl/tld//ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/ssl/tld//ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file) while SSL handshaking, client: 192.168.136.xxx, server: 0.0.0.0:443
nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
답변1
누군가가 첫 번째 검색 결과로 이것을 우연히 발견한 경우를 대비하여: 작동하는 솔루션을 찾을 수 있습니다.여기.