Linux Labs

Веб-стек / Ступень 4 из 9

Доверие, имя и срок сертификата

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 3 из 8 · на машине · 6 мин

Имя в сертификате

Сертификат выдают на конкретные имена, и клиент сверяет с ними адрес.

Второй сайт на этом сервере, shop.lab.test, работает без жалоб. Но часть старых ссылок ведёт на www.shop.lab.test, и nginx отвечает на оба имени. Проверь их.

Упражнение · посмотреть

Открой shop по двум адресам

Запроси https://shop.lab.test/ и https://www.shop.lab.test/, потом посмотри имена в сертификате shop.

Сначала предположи

В nginx оба имени ведут на один и тот же server. Что напечатает curl для www.shop.lab.test?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа

Имена сайта записаны в расширении SAN — Subject Alternative Name. curl ищет в этом списке имя из адреса, буква в букву, а CN в subject современные клиенты для проверки не используют. www.shop.lab.test — отдельное имя, и раз его нет в SAN, проверка не прошла.

Как nginx узнал, какой сертификат отдать? Имя сайта клиент передаёт в самом начале TLS, до всякого HTTP, — это SNI. По нему nginx выбирает server и его сертификат, так же как по заголовку Host выбирает сайт для HTTP. Для www.shop.lab.test нашёлся server shop, и nginx отдал сертификат shop с одним именем.

openssl s_client берёт имя для SNI из -connect. Подключаясь по адресу, имя задают отдельно: -servername shop.lab.test.

Ubuntu 24.04
Загрузка…