#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). В противном случае я не думаю, что это возможно.