Пожалуйста, примите во внимание мои обстоятельства:
- Я создал бэкэнд-API для порта 8880 в Express. js в HTTP
- Я создал веб-сайт внешнего интерфейса в Next . js на порту 80, также в HTTP.
- Я регистрируюсь с cloudflare, они управляют моим DNS, я получаю их SSL, поэтому мой веб-сайт HTTP становится HTTPS.
- После успешного применения SSL к веб-интерфейсу API-интерфейс бэкэнда перестает получать запрос POST от входа в систему из внешнего интерфейса.
В результате я больше не могу войти на свой сайт, поскольку каждая попытка завершается неудачей, когда POST-запрос пытается отправить JSON данные для входа в систему. Как я могу исправить это нарушение SSL? Это прекрасно работало как HTTP к HTTP. Но теперь, как HTTPS к HTTP, получил сбой.
Вот что я пытался решить:
- HTTPS to HTTPS - это не удалось. Я попытался изменить серверную часть на HTTPS, но использовал самозаверяющий сертификат, следуя этой инструкции.
Мой код в приложении. js (серверная часть):
https.createServer({
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.cert')
}, app)
.listen(port, function () {
console.log(`Connected on port ${port}`)
})
Настройте мои правила страницы Cloudflare - очевидно, cloudflare имеет настройки «Правила страницы» для вашего домена, поэтому я установил для себя domainname.com/api
SSL: гибкий. Все еще не удалось. Тестирование в Почтальоне показало, что я успешно входил в систему с https://123.456.789.10:8880/api/signin
, но не с https://domainname.com/api
. Я включил morgan на Express и не увидел ping на конечной точке /api/signin
.
Переключение серверной части с HTTPS на HTTP, оставив правила страницы в SSL Flexible - Согласно ответ на этот вопрос здесь , я думал, что это, безусловно, будет работать , поскольку Cloudflare говорит «Гибкая опция SSL позволяет устанавливать безопасное соединение HTTPS между вашим посетителем и Cloudflare, но заставляет Cloudflare подключаться к исходный веб-сервер по незашифрованному HTTP. Сертификат SSL не требуется на исходном веб-сервере, и ваши посетители по-прежнему будут видеть, что сайт поддерживает HTTPS. " Это также не удалось.
Итак, я все еще не могу связаться с / api / signin ни по domainname.com/api/signin
, ни по https://123.456.789.10:8880/api/signin
, ни по http://123.456.789.10:8880/api/signin
. Морган ничего не показывает в консоли, когда я пытаюсь войти, тогда как раньше.
Кто-то должен решить проблему настройки внешнего интерфейса и внутреннего интерфейса на одном IP, но на двух разных портах, и заставить его работать с Cloudflare SSL раньше. Пожалуйста помоги!