Sendmail + SSL cертификат от Let's Encrypt


30 сентября 2021 года случилось то, что и должно было случиться, а именно, истёк срок действия корневого сертификата IdenTrust DST Root CA X3, которым подписаны сертификаты от популярного удостоверяющего центра Let's Encrypt.

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

Более 20 лет я использую sendmail и абсолютно им доволен. НО(!) столкнувшись с тем, о чём пойдёт речь ниже, я, честно говоря, офигел. Нет, я нисколько не умаляю ценность и значимость той работы, которую парни делают уже более 40-ка лет, и благодарен им за неё.

И так, по порядку. Очевидно, что на ситуацию необходимо реагировать.

Как мне по наивности казалось, отреагировал я абсолютно верно — и всё-то у меня обновлено (даже следов устаревшей libssl1.0 не осталось), и сертификаты перевыпущены, и sendmail (ессно, последней версии) пересобран, и вообще я уже практически был готов испытать здесь-не-разборчиво (пусть будет "рожденственское настроение"), но не тут-то было! — Плохо, оказывается, я знал парней из Proofpoint, а Кристиан Грей в сравнении с ними, не поверите, не более, чем шаловливый ребёнок!

О чём это я? Ах да. Все приложения, использующие сертификаты от Let's Encrypt (за)работали идеально. Идеально... Все... Кроме sendmail-а!

И скажете Вы мне, что рукожопый Я! Обидно... Не справедливо... Требую сатисфакции!

Так что же произошло? А вот что — со всеми не предъявляющими сертификаты от Let's Encrypt MTA всё как было хорошо, так и осталось, а вот с MTA, которые предъявляют сертификаты от Let's Encrypt, "verify=FAIL" стал вечным.

ajfa sendmail[16489]: STARTTLS=server, relay=smtp.gosuslugi.ru [109.207.2.149], version=TLSv1.2, verify=OK, cipher=ECDHE-RSA-AES256-GCM-SHA384, bits=256/256
ajfa sendmail[20009]: STARTTLS=client, relay=mxs.mail.ru., version=TLSv1.2, verify=OK, cipher=ECDHE-RSA-AES256-GCM-SHA384, bits=256/256
ajfa sendmail[21755]: STARTTLS=server, relay=freeway.sistemservis.ru [81.24.119.230], version=TLSv1.3, verify=FAIL, cipher=TLS_AES_256_GCM_SHA384, bits=256/256
ajfa sendmail[21276]: STARTTLS=client, relay=freeway.sistemservis.ru., version=TLSv1.3, verify=FAIL, cipher=TLS_AES_256_GCM_SHA384, bits=256/256

Вы мне, конечно, возразите — если не хочешь платить (за сертификаты, поддерждку etc), то можешь пойти лесом! Не скрою, резонное замечание. Только проблему такие заявления не решают от слова совсем и напрямую ведут к отуплению системных администраторов, следствием чего, вполне логично, является обесценивание нашей профессии.

Гугленье [предсказуемо :(] ни к чему не привело, так как всю полученную информацию можно условно разделить на три категории — "просто страдайте", прикручивание к sendmail-у левых сертификатов аля "localhost.localdomain" и шаманство с корневыми сертификатими в системе. Очевидными стали факты того, что во-первых толку от такой информации ноль, а во-вторых то, что в очередной раз мною горячо любимый sendmail оказался пуленепробиваемым и то, что голыми руками его не возьмёшь.

Дочитавшие до этого абзаца предсказуемо заныли о капитуляции — не дождётесь! Русский сисадмин меняет вентилятор в блоке питания, с его разбором разумеется, не обесточивая (выключая) сервер, а значит и здесь не сдастся! [В фоне звучит какая-нибудь очень патриотичная мелодия, может быть даже гимн.]

Не буду растекаться мыслью по древу в силу того, что она (мысль) есть моё предположение. Перейду к сути. Решение было найдено и оно гениальное, как и всё простое, за что я искренне благодарен Scott Helme.

Суть в том, что если невозможно sendmail заставить играть по общим правилам, то этого птеродактиля нужно просто обмануть!

Да-да, вы не ослышались, — именно обмануть! Просто изменив дату окончания срока действия проблемного сертификата в сохранённой у вас локальной копии. Подробности здесь — Working around expired Root Certificates.

Что касается рисков, то они незначительны — подробности в главе "Is there a risk to this?" (ссылка выше).

Если же Вы всё ещё продолжаете считать меня рукожопым, добро пожаловать в e-mail, где Вы покажете мастер-класс по укрощению птеродактиля. )


(c) 2021-2024 Sergey V. Matrakshin