Что может привести к тому, что сервер Gunicorn, на котором запущено приложение Flask, сообщит об ошибке «неизвестный сертификат предупреждения sslv3» в браузере, когда сервер Apache, на котором запущено приложение WSGI, использующее тот же сертификат на той же машине, не сообщает о проблемах?
Сервис Gunicorn размещает с домена https://mysub.example.com:1234 в то время как служба Apache размещается со стандартного порта 80 в https://mysub.example.com.
Обе службы размещены на одном и том же физическом сервере и загружают подстановочный SSL-сертификат, расположенный по адресу /etc/ssl/сертификаты
.
Журналы от Gunicorn/Flask не дают много обратной связи и просто показывают:
[2021-06-23 12:55:34 -0500] [2320785] [DEBUG] Ошибка обработки запроса SSL.
[2021-06-23 12:55:34 -0500] [2320785] [DEBUG] Неверный запрос от ip=123.45.678.90: [SSL: SSLV3_ALERT_CERTIFICATE_UNKNOWN] Сертификат предупреждения sslv3 неизвестен (_ssl.c:2633)
Сервер Gunicorn запускается через Supervisor с правами пользователя. www-данные
команда:
/usr/local/alphabuyer/.env/bin/gunicorn --certfile=/etc/ssl/certs/example.com.crt --keyfile=/etc/ssl/certs/example.com.key --bind 0.0. 0.0:1234 сервер:приложение
Между тем, настройки SSL для конфигурации Apache:
SSLEngine включен
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/certs/example.com.key
SSLCACertificateFile /etc/ssl/certs/example.com.intermediate.crt
SSLПротокол все
SSLCipherSuite ВЫСОКИЙ: СРЕДНИЙ
Я проверил разрешения в /etc/ssl/сертификаты
, и они кажутся правильными. Все принадлежит пользователю www-данные
chmoded до 600.
Я не вижу причин, по которым сертификат будет правильно обслуживаться Apache, а не Gunicorn. Сообщение об ошибке предполагает, что это не обязательно что-то, что обслуживает Gunicorn, а ошибка или какая-то поддерживаемая функция с запросом, который делает браузер. Что мне здесь не хватает?