У меня есть два домена, оба являются подстановочными знаками. Оба используют только https, например.
*. example. something.com * .example.com
Проблема в том, что nginx, кажется, всегда предоставляет сертификат по умолчанию (example.something.com), который недействителен, когда я перехожу на https://t12345.example.com .
В моем текущем файле nginx.conf есть следующие записи:
server {
listen 443 default_server;
server_name example.something.com;
ssl on;
ssl_certificate "/etc/nginx/star.example.something.com.crt";
ssl_certificate_key "/etc/nginx/star.example.something.com.key";
}
server {
listen 443 ssl;
server_name example.com;
ssl on;
ssl_certificate "/etc/nginx/star.example.com.crt";
ssl_certificate_key "/etc/nginx/star.example.com.key";
}
nginx не сообщает об ошибках, и присутствуют сертификаты, которые являются действительными сертификатами с подстановочными знаками.
Любые идеи, почему он не выбирает второй сертификат?
Вы не создали блок server
, который соответствует имени хоста, к которому вы пытаетесь получить доступ, поэтому nginx обслуживает запрос, используя первый блок server
с соответствующим прослушиванием
директива.
Для решения проблемы создайте новый блок server
или добавьте соответствующее имя_сервера
в существующий блок server
.
Если это действительно сертификаты с подстановочными знаками и вы хотите, чтобы единственный блок server
обрабатывал все возможные имена, то вам, вероятно, следует обслуживать их с именем с подстановочными знаками, например:
server_name *.example.something.com;