Django-Nginx-React: как исправить ERR_CERT_COMMON_NAME_INVALID и проблемы с самоподписанным сертификатом

Я работаю над проектом, в котором для аутентификации используются SimpleJWT токены, хранящиеся в HttpOnly cookies. Архитектура включает в себя Django бэкэнд, Nginx сервер и React+Vite фронтэнд. Ниже приведена конфигурация:

  • Я создал самоподписанный центр сертификации (CA).
  • Я выпустил два отдельных сертификата, подписанных одним и тем же центром сертификации: один для Nginx сервера (обслуживающего Django бэкэнд) и один для React+Vite приложения
  • .

enter image description here

Когда я запускаю свое приложение React+Vite на Google Chrome и пытаюсь вызвать API входа /api/auth/login/ из бэкенда Djagno, я получаю следующую ошибку:

POST https://172.x.x.x/api/auth/login/ net::ERR_CERT_COMMON_NAME_INVALID

Дополнительно я создал Node.js проект для тестирования того же API, выполняя Axios запросы. В этом случае я получаю Error: self-signed certificate in certificate chain

Однако если я запускаю проект Node.js с NODE_TLS_REJECT_UNAUTHORIZED='0', API работает нормально, и я могу видеть куки HttpOnly и правильный ответ от Django.

Похоже, это связано с самоподписными сертификатами, но я не знаю, как решить эту проблему, чтобы Chrome правильно принимал сертификаты и разрешал установку файлов cookie. Я также ищу решение, которое не включает отключение проверки сертификатов с помощью NODE_TLS_REJECT_UNAUTHORIZED=0.

Вопросы:

  • Как решить проблему ERR_CERT_COMMON_NAME_INVALID в Chrome?
  • Как правильно настроить самоподписанные сертификаты, чтобы Chrome принимал их и правильно устанавливал куки HttpOnly?

Любая помощь будет оценена по достоинству!

Вернуться на верх