Skip to main content

Установка корневого сертификата HARICA для H2H-соединения

Если ваш сервер обращается к API интернет-эквайринга (securepay.tinkoff.ru, acqapi.tinkoff.ru), но в доверенном хранилище окружения отсутствует корневой сертификат HARICA, запросы могут завершаться ошибкой проверки TLS-сертификата:

  • certificate verify failed;
  • unable to get local issuer certificate;
  • PKIX path building failed.

Чтобы установить доверенное соединение, добавьте корневой сертификат HARICA в доверенное хранилище серверного окружения.

Сертификат имеет CN HARICA TLS RSA Root CA 2021.

Шаг 1. Скачайте сертификат

curl -o harica.crt https://developer.tbank.ru/harica.crt

Несмотря на расширение .crt, сертификат представлен в PEM-формате и должен начинаться со строки:

-----BEGIN CERTIFICATE-----

Проверьте формат и данные сертификата:

openssl x509 -in harica.crt -noout -subject -issuer -dates -fingerprint -sha256

Если команда завершается ошибкой, убедитесь, что файл скачался полностью и не содержит HTML-страницу вместо сертификата.

Шаг 2. Установите сертификат

Выберите способ установки для вашего окружения.

Linux: Debian / Ubuntu

sudo cp harica.crt /usr/local/share/ca-certificates/harica.crt
sudo update-ca-certificates

Linux: RHEL / CentOS / AlmaLinux / Rocky Linux

sudo cp harica.crt /etc/pki/ca-trust/source/anchors/harica.crt
sudo update-ca-trust

Java / JVM

Создайте отдельный truststore:

keytool -importcert \
-alias harica-root \
-file harica.crt \
-keystore harica-truststore.jks \
-storepass <пароль> \
-noprompt

Подключите truststore при запуске приложения:

java \
-Djavax.net.ssl.trustStore=/path/to/harica-truststore.jks \
-Djavax.net.ssl.trustStorePassword=<пароль> \
-jar app.jar

Python: requests

После установки сертификата в системное хранилище дополнительные настройки обычно не требуются.

Если приложение использует собственный набор доверенных сертификатов, добавьте HARICA в общий CA bundle и укажите путь к нему:

export REQUESTS_CA_BUNDLE=/path/to/ca-bundle.crt

Не указывайте файл, содержащий только HARICA, если приложение также обращается к другим HTTPS-ресурсам. Используйте общий bundle со всеми необходимыми доверенными сертификатами.

Python: aiohttp

Передайте сертификат через SSLContext:

import ssl

import aiohttp


ssl_context = ssl.create_default_context(cafile="/path/to/ca-bundle.crt")

async with aiohttp.ClientSession() as session:
async with session.get(
"https://securepay.tinkoff.ru/",
ssl=ssl_context,
) as response:
print(response.status)

Node.js

Файл, указанный в NODE_EXTRA_CA_CERTS, должен содержать сертификат в PEM-формате:

NODE_EXTRA_CA_CERTS=/path/to/harica.crt node app.js

Переменную необходимо задать до запуска процесса Node.js.

Docker

Добавьте сертификат в образ на этапе сборки:

COPY harica.crt /usr/local/share/ca-certificates/harica.crt
RUN update-ca-certificates

После изменения сертификата пересоберите образ и перезапустите контейнер.

Windows / .NET / IIS

Запустите PowerShell с правами администратора:

Import-Certificate `
-FilePath "C:\certs\harica.crt" `
-CertStoreLocation Cert:\LocalMachine\Root

После установки перезапустите приложение, службу или пул приложений IIS.

Шаг 3. Проверьте соединение

curl -v https://securepay.tinkoff.ru/
curl -v https://acqapi.tinkoff.ru/

Соединение должно устанавливаться без ошибок проверки TLS-сертификата.

Посмотреть цепочку сертификатов можно командой:

openssl s_client \
-connect securepay.tinkoff.ru:443 \
-servername securepay.tinkoff.ru \
-showcerts \
</dev/null

Проверить только сертификат сервера:

openssl s_client \
-connect securepay.tinkoff.ru:443 \
-servername securepay.tinkoff.ru \
</dev/null 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates

После установки сертификата перезапустите приложения и сервисы, которые загружают доверенные сертификаты только при старте.

openapi@tbank.ru

АО «ТБанк» использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. «Cookie» представляют собой небольшие файлы, содержащие информацию о предыдущих посещениях веб-сайта. Если вы не хотите использовать файлы «cookie», измените настройки браузера.