Как настроить сервер Daphne для приглашения клиентов добавить центр сертификации, выдавший мой сертификат, если они еще этого не сделали?

Если я сделаю запрос к своему серверу Daphne / Django в Postman или в приложении для Android, которое мы разрабатываем, Дафна выдает сертификат, но он отклоняется. Если я сначала сделаю простой запрос на получение на https://letsencrypt.org/, а затем сделаю запрос на свой сервер , сертификат принят.

Как я могу убедиться, что клиент доверяет моему сертификату, даже если этот клиент впервые видит сертификат, выданный этим ЦС?

Все, что описано ниже, может служить историей того, как я изучал проблему.

Оригинальное название: SSL-сертификат работает в браузере, но не может быть проверен почтальоном

У меня есть экземпляр AWS EC2, работающий под управлением Ubuntu 18.04, с python 3, Django, набором зависимостей проекта, Daphne, работающим с ASGI, с сертификатом Let's Encrypt. Дафна использует порт 8000 для HTTP и por 4430 для HTTPS, iptables настроен на перенаправление запросов с порта 80 на 8000 и с порта 443 на 4430. Django настроен для обеспечения безопасных соединений с SECURE_SSL_REDIRECT = True в файле settings.py.

Обслуживается временная страница «Сайт в разработке», и она должным образом доступна из любого браузера и со всех устройств, которые я тестировал до сих пор. Если я введу явно http, я буду перенаправлен на https, и сертификат будет принят. Все браузеры, которые я тестировал (Firefox, Brave, Chrome, Chrome для Android), говорят, что сертификат хорош.

Curl выводит содержимое HTML, возвращаемое с сервера. Я не знаю, принимает ли он сертификат или игнорирует его.

Проблема

Почтальон, однако, сообщает: «Ошибка: невозможно проверить первый сертификат». Работает только тогда, когда я отключу «Проверка сертификата SSL», что не отвечает на мой вопрос: почему Postman не может проверить мой сертификат Let's Encrypt?

Я создаю API, который работает на том же сервере, в том же домене и предназначен для использования мобильным приложением. В настоящее время приложение для Android выдает ошибку «Ошибка типа: сбой сетевого запроса», которая, как я подозреваю, может быть вызвана тем же, на что жалуется Почтальон.

Когда я раскручиваю сервер локально и настраиваю 1) приложение для использования http://localhost:8000 и 2) сервера чтобы не применять SSL, он работает в браузерах, Postman и в приложении для Android.

Я искал ответы во многих местах в течение нескольких дней, так что любая подсказка будет очень кстати.

РЕДАКТИРОВАТЬ

Интересная подсказка:

Если я делаю запрос на свой сервер Daphne / Django, он отправляет сертификат, который отклоняется. Но если я сначала сделаю запрос к https://letsencrypt.org/, а затем сделаю запрос своему серверу, оно работает!

Эта закономерность верна как в Postman, так и в нашем приложении для Android.

Это также происходит, когда я впервые делаю запрос к https://alloy.city (вместо letsencrypt.org), который обслуживается приложением Node.js и использует сертификат, также выданный центром сертификации Let's Encrypt.

Так что, возможно, возникает вопрос: как настроить мой сервер так, чтобы он вежливо приглашал клиентов добавить ЦС, выдавший мой сертификат, если они еще этого не сделали?.

Видимо, это то, что делает мой сервер Node.js.


person Bernardo SOUSA    schedule 28.05.2020    source источник


Ответы (1)


Да, в настройках коснитесь ssl-подтверждения выключено

Файл> Настройки> Общие> Проверка сертификата SSL> выкл.

введите описание изображения здесь

person MexiCano    schedule 28.05.2020
comment
Спасибо, но это не ответ на вопрос. Если предоставленный сертификат действителен, в соответствии с тем, что говорит браузер, почему почтальон не может его проверить? - person Bernardo SOUSA; 28.05.2020
comment
эта статья отвечает на ваш вопрос? github.com/postmanlabs/postman-app-support/issues/3942 - person MexiCano; 28.05.2020
comment
Сегодня утром я прочитал эту ветку на GitHub (выпуск 3942). Я использую настройки прокси по умолчанию в Postman. Также обновлен Postman до версии 7.25.0 (последней на момент написания этой статьи). Запросы к другим серверам работают. Может дело в Дафне или Джанго на сервере? - person Bernardo SOUSA; 28.05.2020
comment
Привет, @MexiCano! Я добился определенных успехов в изучении этой проблемы. Сам вопрос изменился, чтобы отразить это. Я считаю, что это как-то связано с тем, как Дафна реализует протокол TSL. Есть надежда! :) - person Bernardo SOUSA; 29.05.2020