Невозможно настроить SSL поверх экспресс-сервера с помощью nginx - PullRequest
0 голосов
/ 13 февраля 2019

С риском «прошлые вопросы не были хорошо приняты, и я могу быть заблокирован», вот вопрос:

  1. У меня есть домен на GoDaddy (abc.coЯ уже приобрел сертификаты SSL)

  2. У меня есть экземпляр EC2 (домен abc.co указывает на эластичный ip этой виртуальной машины)

  3. На вышеупомянутом экземпляре EC2 мое угловое приложение (UI) работает.

  4. Я могу получить доступ к своему угловому приложению с помощью https://abc.co

  5. На той же виртуальной машинемой узел js + express приложение работает.(Я могу назвать API, например, http://ip:3000/api/blah)

  6. Я использовал nginx в качестве обратного прокси для API и в качестве сервера для угловых приложений.

  7. Из углового приложения мы вызываем API, такие как https://ip:3000/api/blah(otherwise Я получаю смешанную ошибку содержимого, если мы используем только http)

Теперь, когда мы вызываем выше APIиз углового приложения мы получаем ошибку ниже:

на mozila: запрос перекрестного источника заблокирован: та же политика происхождения запрещает

чтение удаленного ресурса в https://ip:3000/api/users/login/

на chrome: ERR_CONNECTION_CLOSED

вот мой файл nginx в / etc / nginx / sites-available / default

server{
    #listen 80 default_server;
    listen 443 ssl;
    server_name abc.co;

    #ssl off;
    ssl_certificate /home/ubuntu/ssl_certs/abc.co.chained.crt;
    ssl_certificate_key /home/ubuntu/ssl_certs/abc.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    root /var/www/html/tests;
    index index.html index.htm;

    location / {
            try_files $uri $uri/ /index.html;
    }

    #reverse proxy
    location /api {

            rewrite ^/api/?(.*) /$1 break;
            proxy_pass http://ip:3000;
    }

 }
server {
    listen 80;
    server_name abc.co;
    return 301 https://abc.co$request_uri;
}

1 Ответ

0 голосов
/ 14 февраля 2019

Чтобы избежать проблем с Cross-Origin, просто зайдите в API, используя приведенный ниже URL:

https://abc.co/api/blah

Когда ваш API работает на разных виртуальных машинах, вам необходимо узнать больше о Совместное использование ресурсов из разных источников.

Есть модуль для экспресса, который поможет вам в этом тоже.

Cors middleware

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...