HTTPS-соединение с API не работает Express / Node / Nginx - PullRequest
2 голосов
/ 23 февраля 2020

У меня запущен экземпляр AWS, и я создал сертификат с помощью certbot: я могу go с браузером https://www.tichutimo.ch/, и он показывает страницу по умолчанию. Существует настроенный маршрут http://www.tichutimo.ch: 5000 / api / users / test , который просто отвечает текстом. С http это нормально работает. Но когда я пытаюсь https://www.tichutimo.ch: 5000 / api / users / test , я получаю "SSL_ERROR_RX_RECORD_TOO_LONG" in firefox.

Теперь я даже не уверен, где искать решение: В express? В nginx? Я ничего не вижу в моих express журналах ..

С завитком я получаю curl: (35) error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number

Ответы [ 2 ]

2 голосов
/ 23 февраля 2020

Полагаю, вы хотите использовать nginx, настроенный в качестве обратного прокси. В этой настройке предполагается принимать входящие соединения https (через порт 443 по умолчанию) и передавать их на ваш сервер nodejs через http://localhost: 5000 в вашем случае. Это хорошая высокопроизводительная настройка: nginx обрабатывает тяжелые операции https, и ваша программа nodejs может быть выделена для вашего приложения.

Таким образом, ваш https URL неверен. Выньте ссылку на порт 5000. Нравится. https://www.tichutimo.ch/api/users/test

Но, когда я попробовал это на вашем сайте, я получил страницу nginx 404. На вашей странице входа отображается страница по умолчанию nginx. Таким образом, похоже, что ваш /etc/nginx.conf неправильно настроен для работы обратного прокси.

У 'toobz есть много хороших уроков по этому вопросу, и объяснение этого выходит за рамки ответа о переполнении стека. Пожалуйста, задайте другой вопрос, если вы застряли.

1 голос
/ 23 февраля 2020

Понял это благодаря комментарию @ o-jones.

  1. Мне пришлось удалить порт из запроса
  2. Мне пришлось добавить строку с proxy_pass как видно ниже

    location / {
           proxy_pass       http://localhost:5000;
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...