В письме от банка — «переходим на сертификаты УЦ Минцифры», в статьях — про греческую HARICA, а у вас один вопрос: что из этого ставить на сервер, чтобы оплата на сайте продолжала работать? Разбираем спокойно и по делу.
Исторически сайты и банковские системы в России работали на сертификатах западных удостоверяющих центров. После того как международные УЦ начали отзывать и переставать продлевать сертификаты российским компаниям, экосистема разделилась на два рабочих пути: национальный УЦ Минцифры (Russian Trusted CA) и дружественные зарубежные центры, из которых в банковской сфере закрепилась греческая HARICA. Банки и платёжные системы мигрируют на них волнами — и каждая волна приносит бизнесу письма «обновите доверенные сертификаты до такого-то числа».
Частая путаница: владельцы сайтов думают, что им нужно менять сертификат своего домена. Обычно нет. Когда ваш сервер обращается к API банка (создать платёж, проверить статус), он проверяет сертификат банка — и должен доверять УЦ, который его выпустил. Для этого в хранилище доверенных сертификатов вашего сервера должны лежать корневые сертификаты Минцифры и/или HARICA. Нет корня в хранилище — соединение с банком не устанавливается, и платежи молча перестают проходить. Подробнее о механике мы писали в статье что такое TLS-сертификат.
Вы не управляете тем, каким сертификатом банк подпишет свой следующий эндпоинт: сегодня платёжный шлюз на HARICA, завтра колбэки переезжают на Минцифры, послезавтра появляется резервный контур. Мы ставим клиентам оба корня сразу: это ничего не стоит дополнительно, а от следующего «письма счастья» от банка вы просто отмахнётесь — у вас уже всё готово. Один раз мы наблюдали, как магазин трижды за год «чинил» платежи по очереди под каждое письмо Т-Банка — вместо того чтобы закрыть вопрос за один заход (об этой истории — в статье про смену сертификатов Т-Банком).
Тонкость, из-за которой «всё установили, но не работает»: у сервера не одно хранилище доверия. Системное хранилище ОС, отдельные бандлы у PHP/curl, свои цепочки у Java и Python-окружений, изолированные хранилища внутри Docker-контейнеров. Корень должен попасть в то хранилище, которым пользуется именно ваш платёжный код. Проверка — не «открыл сайт в браузере», а тестовый запрос к API банка с сервера. Как это сделать своими руками — разбираем в инструкции по проверке сертификатов.
Услуга установки TLS-сертификатов: ставим корни Минцифры и HARICA во все нужные хранилища, проверяем реальными запросами к вашему эквайрингу, оставляем инструкцию для вашего разработчика. Фиксированно 40 000 ₽, срок 1–2 дня, работаем аккуратно — без остановки сайта.
Речь о разных вещах: мы говорим об установке корневых сертификатов в хранилище вашего сервера для исходящих соединений с банком — посетители сайта этого вообще не видят. Сертификат самого сайта (который видят браузеры) остаётся обычным публичным, например Let's Encrypt. Эти два контура друг другу не мешают.
Нельзя: письмо означает, что переход запланирован, и работает пока старый контур. В дату переключения соединение без нужных корней оборвётся — как правило, это происходит ночью, и утром вы обнаружите остановленные платежи. Установка корней заранее занимает час-два и снимает проблему навсегда.
На виртуальном хостинге хранилищем управляет провайдер, и обычно нужные корневые сертификаты там уже есть или добавляются по тикету в поддержку. Проверить можно тестовым запросом к API банка из панели (или попросить поддержку выполнить). Если хостинг не может — это повод для переезда на VPS, что для приёма платежей в любом случае надёжнее.