Выбор ответа Middle DNS, TLS и прокси спрашивают часто обновлено
Работает в браузере, не работает в curl
Вопрос
Сайт открывается в браузере, а curl и Java-клиент падают с ошибкой проверки сертификата. Что самое вероятное?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сервер не отдаёт промежуточный сертификат, браузер достроил цепочку сам. Сервер должен отдавать сертификат вместе с промежуточными (в nginx sslcertificate указывает на fullchain).
Варианты ответа
- curl и Java не поддерживают TLS 1.3, который включён на сервере
- Сертификат выпущен Let's Encrypt, а curl и Java не доверяют его корню
- Сервер не отдаёт промежуточный сертификат, браузер достроил цепочку самправильный ответ
- Сайт работает только по HTTP/2, а curl и Java ходят по HTTP/1.1
Разбор
Сервер должен отдавать сертификат вместе с промежуточными (в nginx ssl_certificate указывает на fullchain). Браузеры умеют догружать недостающие промежуточные или берут их из кеша, а большинство библиотек нет. Современный curl поддерживает TLS 1.3, корни Let's Encrypt есть в стандартных хранилищах, HTTP/2 не влияет на проверку.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.