Альфа Банк API ошибка сертификата SSL

Подскажите куда копать, или как исправить ошибку. В песочнице Банка получаю данное сообщение при попытке сделать запрос введите сюда описание изображения

При переходе по данной ссылке браузер:

Firefox поддерживает протокол TLS 1.2 и выше. Этот веб-сайт может не поддерживать данный протокол. Для установления соединения можно включить TLS 1.0 и TLS 1.1.

и предлагает включить TLS 1.0 и TLS 1.1. => Результат не удовлетворительный.(Данные манипуляции производились на MacOS и Windows). Так при запросе через POSTMAN или пример из песочницы результата никакого не принесло.

ssl.SSLError: [SSL: UNKNOWN_CIPHER_RETURNED] unknown cipher returned (_ssl.c:1123)


Ответы (1 шт):

Автор решения: Pak Uula

Там целый букет проблем с сертификатами.

  1. Сертификат, который предъявляет сервер Альфа-банка, использует алгоритм цифровой подписи 1.2.643.7.1.1.3.2: ГОСТ Р 34.10-2012.

  2. Сервер требует от клиента предъявить сертификат с ключом цифровой подписи тип 22 (ГОСТ Р 34.10-2001), который был выпущен либо удостоверяющим центром "Минкомсвязь России" , либо удостоверяющим центром "CRYPTO-PRO LLC"

Поддержу гостовских шифров и сертификатов исключили из Openssl где-то на границе перехода от 1.0.x к 1.1.0. Вам необходима кастомная реализация Openssl от отечественных производителей. Посмотрите здесь: https://github.com/gost-engine/engine и здесь: https://www.altlinux.org/OSS-GOST-Crypto

Если вам интересно, как я всё это узнал, то ответ прост: посмотрел в Wireshark-е.

В консоли запустил команду openssl s_client -connect apiwsgdev.alfabank.ru:443, а сканер пакетов предоставил расшифровку всех полей сообщения ServerHello

TLSv1 Record Layer: Handshake Protocol: Multiple Handshake Messages
    Content Type: Handshake (22)
    Version: TLS 1.0 (0x0301)
    Length: 4708
    Handshake Protocol: Server Hello
    Handshake Protocol: Certificate
        Handshake Type: Certificate (11)
        Length: 4178
        Certificates Length: 4175
        Certificates (4175 bytes)
            Certificate Length: 2213
            Certificate: … (id-at-commonName=АО "АЛЬФА-БАНК",id-at-organizationName=АО "АЛЬФА-БАНК",id-at-localityName=Москва,id-at-stateOrProvinceNa
                signedCertificate
                    version: v3 (2)
                    serialNumber: 0x01162fa60039ac9e964fb1d1f1ff76174a
                    signature (iso.2.643.7.1.1.3.2)
                        Algorithm Id: 1.2.643.7.1.1.3.2 (iso.2.643.7.1.1.3.2)
                    issuer: rdnSequence (0)
                        rdnSequence: 9 items (id-at-commonName=ООО "КРИПТО-ПРО",id-at-organizationName=ООО "КРИПТО-ПРО",id-at-streetAddress=ул. Ибрагимова, д. 31, офи�,id-at-localityName=г. Москва,id-at-stateOrProvin
                    validity
                    subject: rdnSequence (0)
                    subjectPublicKeyInfo
                    extensions: 13 items
                algorithmIdentifier (iso.2.643.7.1.1.3.2)
                    Algorithm Id: 1.2.643.7.1.1.3.2 (iso.2.643.7.1.1.3.2)
                Padding: 0
                encrypted: …
            Certificate Length: 1956
            Certificate: … (id-at-commonName=ООО "КРИПТО-ПРО",id-at-organizationName=ООО "КРИПТО-ПРО",id-at-streetAddress=ул. Ибрагимова, д.
                signedCertificate
                    version: v3 (2)
                    serialNumber: 0x1770387d000000000405
                    signature (iso.2.643.7.1.1.3.2)
                        Algorithm Id: 1.2.643.7.1.1.3.2 (iso.2.643.7.1.1.3.2)
                    issuer: rdnSequence (0)
                    validity
                    subject: rdnSequence (0)
                    subjectPublicKeyInfo
                    extensions: 11 items
                algorithmIdentifier (iso.2.643.7.1.1.3.2)
                    Algorithm Id: 1.2.643.7.1.1.3.2 (iso.2.643.7.1.1.3.2)
                Padding: 0
                encrypted: …
    Handshake Protocol: Certificate Request
        Handshake Type: Certificate Request (13)
        Length: 433
        Certificate types count: 1
        Certificate types (1 type)
            Certificate type: GOST R 34.10-2001 (22)
        Distinguished Names (429 bytes)
            Distinguished Name: (id-at-commonName=Минкомсвязь России,iso.2.643.3.131.1.1=007710474375,iso.2.643.100.1=1047702026701,id-at-organizationName=Минкомсвязь России,id-at-streetAddress=улица Тверск
            Distinguished Name: (id-at-commonName=CRYPTO-PRO Test Center 2,id-at-organizationName=CRYPTO-PRO LLC,id-at-localityName=Moscow,id-at-countryName=RU,[email protected])
    Handshake Protocol: Server Hello Done
→ Ссылка