certchain.ru

Что читать и чем проверять

Список мест, куда я возвращаюсь каждый раз, когда цепочка не собирается.

Документы

RFC 5280. Построение и проверка пути сертификации. Первое место, куда идти, если непонятно, почему цепочка не сходится.

RFC 6960. OCSP. Из него понятно, что именно подписывает центр в ответе о статусе сертификата.

RFC 8555. ACME, на котором работают автопродление и проверка владения доменом.

RFC 8446. TLS 1.3. Полезно, чтобы понимать, в каком месте рукопожатия приезжает цепочка.

Baseline Requirements от CA/Browser Forum. Формальные требования к центрам: сроки, поля, обязательные расширения.

Команды

# что отдаёт сервер
openssl s_client -connect example.com:443 -servername example.com -showcerts

# сроки и издатель
openssl s_client -connect example.com:443 -servername example.com /dev/null \
  | openssl x509 -noout -subject -issuer -dates

# статус отзыва
openssl s_client -connect example.com:443 -servername example.com -status

# проверка файла целиком
openssl verify -CAfile chain.pem fullchain.pem

Оговорки

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