Замок в браузере есть, а обмен с 1С падает: проверка цепочки SSL
Замок в браузере не доказывает, что сертификат настроен верно. Браузер обычно докачивает недостающий промежуточный сертификат сам, а обмен с 1С, платёжные вебхуки и скрипты этого чаще всего не умеют и падают с ошибкой. Проверьте цепочку командой openssl s_client с сервера: Verify return code: 0 значит порядок, 21 значит цепочка неполная.
пятница, 17:40: сайт открывается, заказы не приходят 📦
Картина знакомая. Менеджер открывает сайт с телефона, потом с ноутбука: замок у адреса на месте, каталог грузится. Директор проверяет сам, тоже всё в порядке. Но в 1С с обеда не появилось ни одного заказа с сайта, а в журнале обмена повторяется одна строка про ошибку проверки сертификата сервера.
Накануне администратор перевыпустил сертификат, потому что старый подходил к концу. Он положил на сервер новый файл, перезагрузил веб-сервер, открыл сайт, увидел замок и закрыл задачу. Срок у сертификата свежий, домен совпадает, поэтому подозрений не возникло. Но в файле лежит только сертификат самого сайта, а промежуточное звено, которым его подписал удостоверяющий центр, осталось за бортом.
Первые часы уходят не туда. Смотрят настройки обмена, пароли, права пользователя, перезапускают службу 1С. Ошибка в логе называется по-разному в зависимости от клиента, и ни одно название не говорит прямо: потеряно промежуточное звено.
Браузер этого не заметил. 1С заметила.
почему браузер прощает то, что не прощает 1С
Сертификат сайта не стоит в одиночку. Его подписывает промежуточный сертификат удостоверяющего центра, тот подписан корневым, а корневой уже лежит в хранилище операционной системы. Клиент идёт от сайта вверх по этой цепочке и проверяет каждую подпись.
Сервер обязан отдать клиенту свой сертификат и все промежуточные. Корневой отдавать не нужно, он и так есть у клиента. Если промежуточного нет, браузер обычно выкручивается: скачивает его по адресу, записанному в самом сертификате, или берёт из кэша, потому что видел его на соседнем сайте. Скрипты на Python, curl, Java-приложения и большая часть клиентов, встроенных в учётные системы, так не делают. Они видят обрыв цепочки и останавливаются.
Поэтому проверка «открыл сайт, замок есть» проверяет одного клиента из многих, причём самого снисходительного.
сколько стоит ошибка, которую не видно с рабочего стола
Тихий отказ обходится дороже громкого. Если сертификат просрочен полностью, посетитель видит красную страницу «Подключение не защищено», и о проблеме узнают за минуты: звонят клиенты, пишут в чат. Обрыв цепочки ведёт себя иначе. Сайт живёт, ломаются только машины, которые с ним разговаривают.
- ✓Заказы с сайта не доходят до учёта. Менеджеры сначала не понимают, почему стало тихо, потом переносят заказы руками, а если это случилось в пятницу вечером, о проблеме узнают в понедельник.
- ✓Платёжный сервис не может отправить на ваш адрес уведомление об оплате. Клиент заплатил, заказ висит как неоплаченный, клиент звонит, поддержка разбирается вручную.
- ✓Мобильное приложение и кабинет партнёра, которые ходят на API по HTTPS, показывают пользователям ошибку соединения без объяснений.
Простой мониторинг «сайт отвечает» при обрыве цепочки молчит: главная страница ведь открывается. Ставка здесь простая: часы или дни непринятых заказов и ручная работа людей, которым надо заниматься продажами.
проверка за пять минут: три команды вместо замка 🛠
Смотрите глазами клиента, которому никто не помогает. Нужен терминал на Linux или macOS, на Windows подойдёт WSL или Git Bash. Вместо shop.example.ru подставьте свой адрес.
- ✓Для проверки цепочки выполните echo | openssl s_client -connect shop.example.ru:443 -servername shop.example.ru. В конце вывода найдите строку Verify return code. Значение 0 (ok) значит, что цепочка собрана. Значение 21 (unable to verify the first certificate) или 20 значит, что сервер не отдал промежуточный сертификат. Параметр -servername обязателен: без него сервер, на котором живёт несколько сайтов, может ответить чужим сертификатом.
- ✓Выполните curl -vI https://shop.example.ru, чтобы увидеть то, что видит обычный клиент. Сообщение «SSL certificate problem: unable to get local issuer certificate» означает тот же обрыв цепочки, только на языке curl.
- ✓Узнайте срок командой echo | openssl s_client -connect shop.example.ru:443 -servername shop.example.ru | openssl x509 -noout -dates. Дата в строке notAfter показывает последний день работы сертификата. Поставьте напоминание минимум за две недели до неё.
проверьте каждое имя, а не только главное
Сертификат выпускают на конкретные имена. Прогоните команды для голого домена, www, поддомена личного кабинета, API и того адреса, на который ходит обмен с 1С. Часто основной сайт обновлён, а api.shop.example.ru до сих пор держит старый сертификат с близким сроком.
проверьте каждый сервер за балансировщиком
Если запросы распределяются между несколькими серверами, одной команды мало. Результат будет меняться от запроса к запросу, и ошибку удаётся поймать только отдельной проверкой каждого сервера по его собственному адресу.
если код 0, а обмен всё равно падает
Тогда цепочка на сервере в порядке, и причина на стороне клиента. Сверьте время на сервере 1С: если часы убежали, новый сертификат покажется ещё не начавшим действовать. Проверьте хранилище доверенных корневых сертификатов: на старых версиях Windows Server и устаревших платформах может не быть корня, которым подписан новый сертификат. Так было в сентябре 2021 года, когда у Let's Encrypt истёк корневой DST Root CA X3 и часть старых систем перестала доверять свежим сертификатам.
чем проверять: четыре способа рядом
Каждый способ видит свой кусок картины. В таблице видно, что показывает каждый и где он слепой.
| Способ проверки | Что показывает | Что пропускает | Когда подходит |
|---|---|---|---|
| Замок в браузере | Сертификат сайта, срок, совпадение имени | Неполную цепочку, ошибки для клиентов без докачки | Быстрый взгляд на основной адрес |
| Онлайн-сканер вроде SSL Labs | Цепочку, протоколы, шифры, общую оценку настройки | Адреса, закрытые от интернета, и поведение конкретного клиента, например 1С | Разовая проверка публичного сайта |
| openssl и curl с сервера | То, что увидит скрипт или обмен, вместе с кодом ошибки | Ничего не отслеживает сам, запускать надо руками | Диагностика, когда обмен уже падает |
| Мониторинг по расписанию | Срок и состояние цепочки каждый день, с оповещением | Нужен список всех имён, иначе забытый поддомен останется без присмотра | Постоянная защита от просрочки |
Для случая с падающим обменом решает третья строка: только она повторяет поведение клиента без браузерной помощи. Сканер расскажет, как сайт выглядит снаружи, а обмен может ходить на адрес, который снаружи недоступен. Четвёртая строка нужна, чтобы эта история не повторилась в следующий цикл продления.
пять причин, по которым сертификат живой, а клиент падает
Типовые причины, которые находит проверка с сервера:
- ✓В конфигурацию веб-сервера подставили файл с одним сертификатом сайта вместо полной цепочки. У Let's Encrypt это разница между cert.pem и fullchain.pem.
- ✓Сертификат обновили, а веб-сервер не перечитал файл. Пока не выполнена перезагрузка конфигурации, сайт отдаёт старый сертификат, и ошибка вылезает в день его истечения.
- ✓Сертификат заменили на одном из нескольких серверов за балансировщиком. Проверка то проходит, то нет, в зависимости от того, куда попал запрос.
- ✓Сертификат выпустили на www, а обмен ходит на голый домен или поддомен, которого в сертификате нет. Имя в сертификате и адрес в настройках обмена должны совпадать буква в букву.
- ✓Продление держалось на памяти администратора. С 15 марта 2026 года максимальный срок нового публичного сертификата сокращён до 200 дней, и по плану он будет уменьшаться дальше. Let's Encrypt и раньше выдавал сертификаты на 90 дней. Вспоминать раз в год уже не получится.
как мы проверяем и сколько это стоит ✅
Проверку сертификатов мы включаем в аудит сайта по 9 направлениям. Технические проверки идут с сервера, а не только глазами в браузере. Для сертификата это значит, что мы проходим каждое имя, которое использует бизнес: сайт, кабинет, API, адрес обмена с 1С. Смотрим цепочку, срок и то, на каком из серверов лежит старый файл. Вы получаете список с адресами, кодами ошибок и датами.
Заодно смотрим, куда ведёт http-версия адреса и нет ли на https-страницах картинок и скриптов по http. Это другая поломка, но находится тем же заходом.
Исправление остаётся работой системного администратора по ставке 3800 руб/час, актуальные условия смотрите на странице цены и тарифы. Сколько часов уйдёт, зависит от числа серверов и имён. Для одного сайта на одном веб-сервере это замена файла и перезагрузка, для связки из нескольких поддоменов и балансировщика работы больше. Точную оценку называем после проверки, а не до неё.
После правки оставляем короткий протокол: какие имена проверены, когда истекает каждый сертификат, кто и как его продлевает. Если продление шло вручную, переводим его на автоматическое с перезагрузкой веб-сервера и напоминанием за две недели до срока.
Если обмен падает прямо сейчас, начните с первой команды из раздела про проверку: код 21 покажет, что причина на стороне сервера, и настройки 1С можно не трогать. Остальные имена и сервисы мы проверим в аудите сайта.
❓ Частые вопросы
Как проверить SSL сертификат сайта самостоятельно?
Откройте сайт и посмотрите срок в свойствах сертификата, затем выполните с сервера команду echo | openssl s_client -connect домен:443 -servername домен. Строка Verify return code: 0 означает, что цепочка собрана, а 21 говорит о нехватке промежуточного сертификата. Повторите проверку для www, поддоменов и адреса, на который ходит обмен с 1С.
Почему в браузере замок есть, а 1С или платёжный сервис не соединяется?
Браузер обычно сам докачивает недостающий промежуточный сертификат или берёт его из кэша. Скрипты, 1С, платёжные вебхуки и мобильные приложения чаще всего так не умеют и видят обрыв цепочки. Решение: настроить на сервере файл полной цепочки, например fullchain.pem у Let's Encrypt, перезагрузить веб-сервер и проверить через openssl.
Как часто нужно продлевать SSL сертификат?
С 15 марта 2026 года максимальный срок нового публичного сертификата составляет 200 дней, а Let's Encrypt выдаёт сертификаты на 90 дней. Раз в год вручную уже не получится. Настройте автоматическое продление с перезагрузкой веб-сервера и поставьте напоминание за две недели до даты окончания из поля notAfter.
Сколько стоит проверка и исправление SSL сертификата?
Проверка сертификатов входит в аудит сайта по 9 направлениям. Исправление остаётся работой системного администратора по ставке 3800 руб/час. Сколько часов понадобится, зависит от числа серверов и поддоменов, поэтому оценку называем после проверки. Для одного сайта на одном веб-сервере правка обычно короткая: замена файла и перезагрузка.
Что делать, если сертификат уже истёк и сайт не открывается?
Перевыпустите сертификат в удостоверяющем центре или через certbot, подставьте в конфигурацию веб-сервера файл полной цепочки, перезагрузите сервер и проверьте openssl каждое имя: основной домен, www, поддомены. Если некому это сделать, подключите системного администратора: простой сайта с красной страницей быстро превращается в потерянные заявки.
Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00
Остались вопросы? Нужна помощь?
Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.
Бесплатная консультация

