Имеется хост 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 отдается какой-то странный сертификат, с закончившейся датой действия?