Перенаправление https://www домен для https://non-www домен в Nginx

#php #nginx #ssl #web #web-applications

Вопрос:

У меня есть около 50 доменов на сервере Nginx, для которых выдается SSL-сертификат(не www SSL-сертификат).

Теперь, когда мы пытаемся открыть такой сайт, как https://www[Домен], есть ошибка «общее имя», так как сертификат не установлен для www.

Я хочу перенаправить любые https://www[домен] на https://[домен], я попробовал несколько решений, доступных в блогах, но, похоже, приведенный ниже код работает только при установке SSL на домене, поскольку я переоформил сертификат www для одного из доменов, затем я могу перенаправить, используя блок кода ниже. но мы не хотим переоформлять сертификаты для всех доменов с www

 server {
    listen 443 ssl;
    server_name www.[domain];    
    return 301 $scheme://[domain]$request_uri;
}
 

Я также попробовал некоторые регулярные выражения с серверным блоком, но они также не работают

 server { 
    server_name "www.(. ?.w )" ; 
    return 301 https://$1$request_uri; 
}
 

Как я могу заставить это работать?

Комментарии:

1. Ты не можешь. https требуется действительный сертификат. Если у вас нет действительного сертификата www.example.com , браузер пользователя будет жаловаться.

2. Теоретически вы можете попытаться сгенерировать сертификаты Let’s Encrypt для этих доменов на лету с lua-resty-auto-ssl помощью модуля (для этого вам понадобится OpenResty или lua-nginx-module вместо «ванильного» nginx). В противном случае я не думаю, что это возможно.