Я только что заметил, что одна из моих страниц не может быть доступна по https без www
Итак, у меня есть четыре разных сценария:
http://example.com
<- Работает </p>
https://example.com
<- <strong> Не работает
http://www.example.com
Работы
https://www.example.com
Работы
Дело в том, что для каждого запроса, независимо от того, какие маршруты вы выбрали выше, вы всегда должны заканчиваться на: https://www.example.com
Я не первый сталкиваюсь с этой проблемой, и я пробовал много сценариев, но безуспешно (например, эти решения: здесь )
Когда я пытаюсь получить доступ к https://example.com
, я получаю SSL_ERROR_BAD_CERT_DOMAIN
. Таким образом, сертификат действителен только для www.example.com
, что имеет смысл. Но у меня также есть другой сертификат, действительный для example.com
.
Ибо моя установка NGINX выглядит следующим образом:
server {
listen 443 ssl;
server_name example.com
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 default_server ssl;
server_name www.example.com;
root /home/build/;
index index.html index.htm;
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
location / {
try_files $uri /index.html;
}
}
server {
listen 80;
server_name www.example.com example.com;
return 301 https://www.example.com$request_uri;
}
Я уже некоторое время пользуюсь NGINX и до недавнего времени никогда не замечал, что у меня возникла эта проблема.
Я знаю, что мог бы обслуживать страницу как с www
, так и без него, и это решило бы проблему. Но я хочу, чтобы каждое взаимодействие происходило на www.example.com
, а не без www
.
Я использую NGINX версии 1.14.0 на Ubuntu 18.04.
Вся помощь оценена.