Сертификат можно прочитать: openssl покажет, кому он выдан, кем и на какой срок.
HTTPS — это HTTP внутри защищённого соединения TLS. В начале соединения сервер отправляет клиенту сертификат, и только если сертификат прошёл проверку, клиент шлёт HTTP-запрос.
openssl s_client подключается к серверу как клиент и печатает, что получил. </dev/null сразу закрывает соединение, 2>/dev/null убирает служебные строки, а openssl x509 после | читает из вывода сертификат и печатает нужные поля.
Прочитай сертификат сервера
Посмотри поля сертификата, который отдаёт secure.lab.test, и сравни его срок с текущей датой.
| Поле | Что в нём |
|---|---|
subject |
кому выдан сертификат: CN — имя сайта |
issuer |
кто выдал и подписал |
notBefore |
с какого момента сертификат действует, время по Гринвичу |
notAfter |
до какого момента он действует |
Клиент сверяет срок со своими часами. Момент notAfter позади — сертификат истёк, и curl закрывает соединение с ошибкой certificate has expired. Если часы машины сбиты, «истёк» бывает и у свежего сертификата, поэтому срок сверяют с выводом date.
Срок сертификату ставят заранее: внутренние CA выдают на год и меньше, публичный Let's Encrypt — на 90 дней. Поэтому замена сертификатов — плановая работа администратора.