The QIWI Wallet documentation wrongly states that an SSL certificate's public key uploading is an optional step, but really the webhook notifications will not be sent to your website without it

The SSL certificate’s public key uploading step is described in the «5.1. Authorization on Merchant’s Server» chapter of the official QIWI Wallet’s REST API specification v.2.12 (page 18):

The merchant’s service has to accept notifications from Visa QIWI Wallet with HTTP or HTTPS protocol.

To use HTTPS protocol, merchant’s server should support SSL-encryption and client SSL certificate verification.

If the client SSL-certificate is self-generated and is not issued by one of the standard certification centers, this certificate should be uploaded to the Visa QIWI Wallet server via the merchant’s console (Certificate field in Settings → Protocols details → REST-protocol section of ishop.qiwi.com web site). Certificate must be in one of the following formats:

  • PEM (text file with .pem extension) – (Privacy-enhanced Electronic Mail) BASE64 encoded DER certificate placed between “-----BEGIN CERTIFICATE-----” and “-----END CERTIFICATE-----” strings.
  • DER (binary file with .cer, .crt, .der extensions) – usually in binary DER format, though PEM certificates are also accepted with this extensions.

Then the merchant’s certificate becomes trusted after the upload.

In Russian

Сервер провайдера должен принимать запросы уведомлений от Visa QIWI Wallet по протоколам HTTP, HTTPS.

Предпочтительнее всего, если уведомления на сервер провайдера выполняются по протоколу HTTPS. В таком случае передача пароля в любом виде является достаточно безопасной. Для этого на сервере провайдера должно быть настроено SSL-шифрование и проверка клиентского сертификата.

Если сертификат для SSL-шифрования сгенерирован самостоятельно и не является доверенным со стороны стандартных центров сертификации, этот сертификат можно загрузить в систему Visa QIWI Wallet на партнерском сайте ishop.qiwi.com в поле Сертификат раздела Протоколы → REST-протокол. Сертификат должен быть в одном из следующих форматов:

  • PEM (текстовый файл с расширением .pem) – (Privacy-enhanced Electronic Mail) закодированный BASE64 сертификат DER, помещенный между строками “-----BEGIN CERTIFICATE-----” и “-----END CERTIFICATE-----”.
  • DER (файл с расширением.cer, .crt, .der) – обычно в бинарном формате DER, однако PEM сертификаты также допускаются с таким расширением.

После загрузки в систему Visa QIWI Wallet данный сертификат будет считаться доверенным.

Really, the the webhook notifications will not be sent to your website without an SSL certificate’s public key uploading.
Here is my conversation with the QIWI Wallet’s technical support:

QIWI Wallet:

Сотрудник поддержки Иванов Александр ответил на Ваш запрос TSP-18120:
Добрый день.
Уважаемый пользователь, сертификат, установленный Вами на сайте имеет CN отличный от URl для уведомлений, из-за этого уведомления отбиваются с ошибкой.
IOException invoking https://mage2.pro/sandbox: The https URL hostname does not match the Common Name (CN) on the server certificate in the client’s truststore

Me:

Не понял. Сделать что надо?

QIWI Wallet:

Дмитрий, в данном случае, в личный кабинет необходимо загрузить корректный сертификат, с корректным CN.

Me:

Так я вообще сертификат не загружал. Согласно документации, я поставил галочку “подпись” и проверяю у себя подпись. Вроде документация говорит, что если используется подпись, то сертификат не нужен?

QIWI Wallet:

Дмитрий, Ваш вывод в данном случае не верен, для корректной работы системы необходим сертификат.

Me:

Открыл документацию, читаю пункт «5.1. Авторизация на сервере провайдера»:

«Если сертификат для SSL-шифрования сгенерирован самостоятельно и не является доверенным со стороны стандартных центров сертификации, этот сертификат можно загрузить в систему Visa QIWI Wallet на партнерском сайте ishop.qiwi.com в поле Сертификат раздела Протоколы → REST-протокол.»

Получается, что если сертификат не сгенерирован самостоятельно, а выдан центром сертификации, то загружать его в личном кабинете не нужно?

У меня на сайте https://mage2.pro не сгенерирован самостоятельно, а выдан центром сертификации Let’s Encrypt.

QIWI Wallet:

Добрый день!
Дмитрий, верно загружать его не обязательно, но советуется.

Me:

В прошлый раз Вы отвечали:
«Дмитрий, Ваш вывод в данном случае не верен, для корректной работы системы необходим сертификат.»

Сейчас:
«Дмитрий, верно загружать его не обязательно, но советуется.»

Если «загружать его не обязательно», то почему тогда QIWI не присылает оповещения о платежах в мой магазин?
Смотрите формулировку моей проблемы из моего первого сообщения.
Проблема-то не решена.

So, as I understand, an SSL certificate’s public key uploading is a required step, not optional.
How to upload your website’s SSL certificate’s public key to your QIWI Wallet merchant account?