Linux Labs

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

HTTPS в nginx: цепочка и редирект

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

Шаг 2 из 7 · на машине · 8 мин

Цепочка сертификатов

Между корнем и сайтом бывает посредник — промежуточный CA.

Корневой ключ CA берегут и подписывают им редко — в основном сертификаты промежуточных CA. Промежуточный CA подписан корневым, а уже он подписывает сертификаты сайтов. Выходит цепочка: app.lab.test ← Lab Issuing CA ← Lab Root CA.

Клиент проходит её звено за звеном: issuer сертификата сайта — Lab Issuing CA, issuer Lab Issuing CA — Lab Root CA, а Lab Root CA лежит в хранилище. В хранилище — только корни. Промежуточные сертификаты клиент получает от сервера, в том же начале TLS, что и сертификат сайта.

openssl s_client из прошлого урока печатает и цепочку, которую прислал сервер: строка s: — subject сертификата, i: — его issuer, номер 0 — сертификат сайта. grep -A1 ' s:' оставляет из вывода эти пары строк.

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

Посмотри, что прислал сервер

Посмотри, какие сертификаты app.lab.test присылает в начале TLS.

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

nginx прислал один сертификат — тот, что лежит в файле из ssl_certificate. Сертификата Lab Issuing CA у curl нет ни в хранилище, ни в ответе сервера. Подпись сайта ему проверить нечем — отсюда unable to get local issuer certificate.

Браузер на твоём ноутбуке такой сайт иногда открывает: он помнит промежуточные сертификаты с других сайтов или скачивает недостающий сам. curl, скрипты и другие серверы так не умеют, поэтому цепочку после правки проверяют curl.

Ubuntu 24.04
Загрузка…