Nginx 1.15.8 需要加载 1k+ SSL 证书

Nginx 1.15.8 需要加载 1k+ SSL 证书
erro ->  nginx: [emerg] BIO_new_file("/etc/letsencrypt/live/$sslwww/fullchain.pem")

带有 map 或 if 的配置不起作用我该怎么做才能让它们起作用?

不要只找到文件的路径

     map $http_host $sslwww {
        default "test.com";
        ~^(?<subdomain>([\w-]+\.)*)?(?<domain>.+)$ $domain;
        }

            server {
                        listen 80;
                        listen [::]:80;
                        return 301 https://$host$request_uri;
        }

        server {
                    listen       443 ssl http2;
                    listen       [::]:443 ssl http2;
                    server_name ~^(?<subdomain>([\w-]+\.)*)?(?<domain>.+)$;
                    #set $sslwww "test.com"; -> not work
                    #if ($domain != "test.com"){
                    #set $sslwww $domain;
                    #}
                    ssl_certificate "/etc/letsencrypt/live/$sslwww/fullchain.pem";
        }

我哪里做错了?

在使用 include conf 但我认为这不太好。还有什么其他解决方案可以加载 1k ssl 证书

答案1

您不能像使用服务器名称或许多其他变量那样使用变量ssl_certificate。这是因为证书必须随配置一起加载,并且不能像其他变量一样随每个请求动态变化。

要解决该问题,您需要获取具有多个名称或通配符的新 TLS 证书。

相关内容