LINUX.ORG.RU

Через браузер и консоль отдается разный сертификат. Это что за?

 , , , ,


0

1

Имеется хост https://webhamster.ru. На нем используются сертификаты Lets Encrypt. Если в браузере посмотреть информацию о сертификате, то будут видны следующие даты:

Действителен с ‎30 ‎декабря ‎2021 ‎г. 8:15:11
Действителен по ‎30 ‎марта ‎2022 ‎г. 8:15:10

То есть, сертификат действителен, не просрочен.

Если же залогиниться в консоль этого хоста, и попробовать получить главную страницу через wget, то будет ошибка:
> wget https://webhamster.ru
--2022-01-11 14:16:46--  https://webhamster.ru/
Распознаётся webhamster.ru (webhamster.ru)… 193.124.188.214
Подключение к webhamster.ru (webhamster.ru)|193.124.188.214|:443... соединение установлено.
ОШИБКА: Нет доверия сертификату для «webhamster.ru».
ОШИБКА: Срок действия сертификата «webhamster.ru» истёк.

Хм, что за дичь, надо посмотреть через openssl:
> openssl s_client -showcerts -connect webhamster.ru:443
CONNECTED(00000003)
depth=3 O = Digital Signature Trust Co., CN = DST Root CA X3
verify error:num=10:certificate has expired
notAfter=Sep 30 14:01:15 2021 GMT
verify return:0

А тут показывается, что сертификат заканчивает действие 30 сентября 2021, то есть сертификат уже недействительный.

Я аж полез в конфиг nginx, посмотрел какой файл прописан в опции ssl_certificate, посмотрел информацию по нему:
> openssl x509 -in *****.pem -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            03:0d:58:dc:36:10:f7:40:f8:73:0c:19:ae:fc:d5:38:f0:00
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, O=Let's Encrypt, CN=R3
        Validity
            Not Before: Dec 30 05:15:11 2021 GMT
            Not After : Mar 30 05:15:10 2022 GMT

А тут все нормально, даты правильные. В Nginx прописан один server для протокола HTTPS, у него одна опция ssl_certificate, никакой путанницы быть не может. Именно этот сертификат и отдается в браузер.

Но почему при запросе через wget и openssl отдается какой-то странный сертификат, с закончившейся датой действия?

★★★★★

Последнее исправление: Xintrea (всего исправлений: 1)

openssl s_client -showcerts -connect webhamster.ru:443

Ты забыл параметр servername

depth=3 O = Digital Signature Trust Co., CN = DST Root CA X3

Если ты раньше пользовался s_client, то тут явно сказано, что протух третий сертификат в цепочке

Обнови корневые сертификаты на хосте

router ★★★★★
()

Поменялся корневой сертификат. Срок действия DST Root CA X3 истек, промежуточный сертификат Let's Encrypt подписан и старым, и новым.

Если в CA store есть новый корневой сертификат, то просроченный DST Root CA игнорируется, подпись новым сертификатом - валидна, значит сертификаты Let's Encrypt действительны.

Если же в CA store нет нового сертификата - к нему нет доверия, доверие есть к DST Root CA X3, который просрочен, значит подпись невалидна.

Наверное на сервере несвежие ca-certificates.

Se mi sbaglio, mi corrigerete.

token_polyak ★★★★★
()
Ответ на: комментарий от router

Обнови корневые сертификаты на хосте

Блин, я тут выяснил, что у меня и LetsEncrypt updater перестал работать. И OpenSSL версии 1.0.1, а нужно выше 1.0.2. И Debian 8-й версии, а нужно 9 и выше.

Так что одним только обновлением корневого сертификата на хосте не обойтись.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Хочешь-нехочешь, а хипстеры волокут за уши в светлое будущее..

Novator ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.