_;
ssl_certificate /etc/nginx/certs/users/$ssl_server_name/bundle.crt;
ssl_certificate_key /etc/nginx/certs/users/$ssl_server_name/private.key;
access_log /var/log/nginx/quiz-domains_access.log combined;
error_log /var/log/nginx/quiz-domains_error.log;
}
вот такой конфиг работает как мне надо. Обслуживает все хосты по https и подставляет сертификат из папки по названию домена.
Но если заходишь на домен https://domain.com и при этом в папке /etc/nginx/certs/users/domain.com/ нет сертификатов, то в браузер пишет
Не удается получить доступ к сайту
Соединение сброшено.
ERR_CONNECTION_RESET
можно ли как то эту ошибку перехватить и отдать html ку?
или как то внутри конфига проверить есть ли файл на сервере по пути /etc/nginx/certs/users/$ssl_server_name/bundle.crt и если нет, то отдать html ку с описание проблемы, а если есть то подключить сертификаты
Возможно что-то такое: server_name _; map $ssl_server_name $cert_dir { default $ssl_server_name; ~*^(www.)?(.*) $2; } set $is_ssl 1; set $cert_file /etc/nginx/certs/users/$cert_dir/bundle.crt; set $key_file /etc/nginx/certs/users/$cert_dir/private.key; if (!-f $cert_file) { set $is_ssl 0; } if (!-f $key_file) { set $is_ssl 0; } if ($is_ssl = 1) { listen 443 ssl; ssl_certificate $cert_file; ssl_certificate_key $key_file; }
скорее всего не сработает, потому что надо домен. у вас в папке users хранятся домены/субдомены/субдомен.домен?
Обсуждают сегодня