NGINX перенаправить HTTPS на HTTPS - PullRequest
0 голосов
/ 25 мая 2020

Как я могу перенаправить https с одного домена на https другого?

Описание случая:

У меня есть три домена, на которые направлено на тот же IP / сайт на NS сервере:

  1. example1.com
  2. example2.com
  3. example3.com

Я заплатил только за одну лицензию SSL, которая изначально была выдана для первого домена, поэтому, когда я купил второй домен, я перенаправил весь трафик c на https://example1.com

В последнее время я хотел перенаправить все звонки на новый домен: https://example3.com. Я переоформил старую лицензию SSL для нового домена и успешно ее установил. Последняя часть перенаправляет весь трафик c на новый домен.

Теперь весь трафик c с http перенаправляется хорошо, но http s (https://example1.com и https://example2.com) вообще не направляется и приводит к работе «Небезопасной» страницы.

Когда я пытаюсь прослушать 443 SSL и перенаправить его с 1 и 2 серверов имен на третий и запустить service nginx restart, я получаю:

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

Когда я запускаю systemctl status nginx.service , Я получаю:

nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2020-05-24 17:53:24 UTC; 4min 5s ago
  Process: 14068 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 13952 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 14073 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
 Main PID: 13957 (code=exited, status=0/SUCCESS)

Думаю, я делаю что-то не так, и перенаправление 443 SSL дважды не разрешено.

Код

Это мой конф работает без перенаправления https example1.com и example2.com:

На /etc/nginx/nginx.conf У меня include /etc/nginx/sites-enabled/*;.

На /etc/nginx/sites-enabled/example3.com.conf Я написал это:

server {
    listen 80;
    server_name example3.com wwww.example3.com example1.com www.example1.com example2.com www.example2.com;
    rewrite ^/(.*) https://example3.com/$1 permanent;
}


server {
    listen 443 ssl;
    server_name example3.com;
    ssl_certificate /etc/ssl/certs/ssl-bundle.crt;
    ssl_certificate_key /etc/ssl/websitessl/example3.com.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
}

Возможно, это дублирование этого: Перенаправление HTTPS на HTTPS Nginx Но мне не удалось заставить его работать.

1 Ответ

0 голосов
/ 26 мая 2020

Спасибо @RichardSmith, я узнал, что для перенаправления HTTPS на HTTPS без предупреждения «Страница небезопасна» вы должны вывести ssl_-операторы из блоков сервера, чтобы все домены были включены.

ssl_certificate /etc/ssl/certs/ssl-bundle.crt;
ssl_certificate_key /etc/ssl/websitessl/example3.com.key;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

server {
        listen  80 default_server;
        listen  443 ssl default_server;
        return  301 https://example3.com$request_uri;
}

server {
    listen 443 ssl;
    server_name example3.com;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...