@nimayoleynik

Как в nginx настроить по отдельному SSL сертификату для каждого домена сервера?

Создал сервер phpMyAdmin и универсальное правило по которому со всех поддоменов "pma" всех доменов идет аллиас на сервер с phpMyAdmin. У каждого домена/сервера есть SSL сертификат выданный на сам домен и все его поддомены.

Сейчас SSL на pma стоит от 1го домена и настроен как обычно, как настроить сервер pma что бы он выдавал сертификат в зависимjсти от домена с которого к нему обращаются ?

$server_name не работает в директиве SSL.

pma.domen0.ru = SSL domen0.ru
pma.domen1.ru = SSL domen1.ru
pma.domen2.ru = SSL domen2.ru
pma.domen*.ru = SSL domen*.ru

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2 ipv6only=on;
        server_name "~^pma\.(.*)$";

        access_log /web/pma/acces.log;
        error_log /web/pma/error.log error;

        #SSL
        include /etc/nginx/snippets/ssl.conf;        
        ssl_certificate /etc/letsencrypt/live/domen1.ru/fullchain.pem;
    	ssl_certificate_key /etc/letsencrypt/live/domen1.ru/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/domen1.ru/fullchain.pem;
        location ^~ /.well-known/acme-challenge {
            default_type "text/plain";
            alias /var/www/letsencrypt/.well-known/acme-challenge;
        }

        #увеличение размера файла и ожидания
        client_max_body_size 512m;
        proxy_connect_timeout 1200;
        proxy_send_timeout 1200;
        proxy_read_timeout 1200;
    
        #точка входа в phpMyadmin
        location / {
            alias /usr/share/phpmyadmin/;
            location ~ \.php$ {
                try_files $uri = 404;
                include fastcgi_params;
                fastcgi_pass  unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_read_timeout 3600;
            }
            location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                access_log    off;
                log_not_found    off;
                expires 1M;
            }
    
            index index.php index.html index.htm;
        }
    
        #ошибки
        error_page 404 /404.html;
        location = /404.html {
            internal; 
            root /web/errors/;
        }
        error_page 400 500 502 503 504 /50x.html;         
        location /50x.html {                 
            internal;                 
            root /web/errors/;         
        }
}
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Никак, делайте отдельные конфиги. Это же тоже возможно автоматизировать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы