Страница 1 из 4

Libcurl: could not parse PKCS12 file (решено)

Добавлено: 25 Апрель 2022, 3:51
Admin

Код: Выделить всё

[libcurl] TEXT:   Trying 185.157.96.191:8443...
[libcurl] TEXT: Connected to api.sberbank.ru (185.157.96.191) port 8443 (#0)
[libcurl] TEXT: ALPN, offering h2
[libcurl] TEXT: ALPN, offering http/1.1
[libcurl] TEXT: could not parse PKCS12 file, check password, OpenSSL error error:0308010C:digital envelope routines::unsupported
libcurl for Clarion v1.49 - работает
libcurl for Clarion v1.52 - не работает

Что то с SSL намудрили вроде. не в курсе как обойти?

Libcurl: could not parse PKCS12 file

Добавлено: 25 Апрель 2022, 11:48
Дед Пахом
А если попробовать libcurl.dll v7.82.0?

Libcurl: could not parse PKCS12 file

Добавлено: 25 Апрель 2022, 14:44
Дед Пахом
Опять же, есть у файла PKCS12 пароль или нет?

Libcurl: could not parse PKCS12 file

Добавлено: 25 Апрель 2022, 15:28
Admin
Дед Пахом писал(а): 25 Апрель 2022, 11:48 А если попробовать libcurl.dll v7.82.0?
попробую завтра
Дед Пахом писал(а): 25 Апрель 2022, 14:44 Опять же, есть у файла PKCS12 пароль или нет?
есть конечно. передаю

Libcurl: could not parse PKCS12 file

Добавлено: 25 Апрель 2022, 15:31
Дед Пахом
Admin писал(а): 25 Апрель 2022, 15:28 есть конечно. передаю
А если неправильный пароль передать, та же ошибка?

Libcurl: could not parse PKCS12 file

Добавлено: 26 Апрель 2022, 3:22
Admin
Дед Пахом писал(а): 25 Апрель 2022, 15:31 А если неправильный пароль передать, та же ошибка?
При отсутствии пароля или неверном выдает:

Код: Выделить всё

[libcurl] TEXT: could not parse PKCS12 file, check password, OpenSSL error error:11800071:PKCS12 routines::mac verify failure

Libcurl: could not parse PKCS12 file

Добавлено: 26 Апрель 2022, 3:27
Admin
Дед Пахом писал(а): 25 Апрель 2022, 11:48 А если попробовать libcurl.dll v7.82.0?
Не помогло

Libcurl: could not parse PKCS12 file

Добавлено: 26 Апрель 2022, 13:10
Дед Пахом
А curl.exe работает? Как-то так:

Код: Выделить всё

curl --key client.key --cert client.crt -X GET -v https://httpbin.org/get
Тут пример: https://stackoverflow.com/questions/334 ... -curl-call
То есть не сам PKCS12 передают, а сертификат и ключ.

Libcurl: could not parse PKCS12 file

Добавлено: 26 Апрель 2022, 16:41
Admin
Дед Пахом писал(а): 26 Апрель 2022, 13:10 То есть не сам PKCS12 передают, а сертификат и ключ.
В API сбера передается именно PKCS12. Ну и как утверждение - предыдущие версии то работают.
В общем, непонятно. Попробую распаковать PKCS12 и передать как в примере.

Libcurl: could not parse PKCS12 file

Добавлено: 27 Апрель 2022, 10:38
Admin
Не смог распаковать сертификат через openssl. Мутные ошибки дает, собака. Забил, пока работает.

Libcurl: could not parse PKCS12 file

Добавлено: 27 Апрель 2022, 11:44
Ал
Admin писал(а): 27 Апрель 2022, 10:38 Не смог распаковать сертификат через openssl. Мутные ошибки дает, собака. Забил, пока работает.
man curl and scroll down til you find the cert-type
- https://stackoverflow.com/questions/322 ... ash-script
https://www.ssl.com/ru/%D0%BA%D0%B0%D0% ... E-openssl/

Libcurl: could not parse PKCS12 file

Добавлено: 28 Апрель 2022, 5:44
Admin
Распаковал сертификат с помощью openssl на linux сервере
Меняю код:

Код: Выделить всё

  SELF.curl.SetOpt(CURLOPT_SSLCERT, 'file.crt.pem')
  SELF.curl.SetOpt(CURLOPT_SSLCERTTYPE, 'PEM')
  SELF.curl.SetOpt(CURLOPT_SSLKEY, 'file.key.pem')
  SELF.curl.SetOpt(CURLOPT_SSLKEYTYPE, 'PEM')
В ответ прилетает:

Код: Выделить всё

[libcurl] DATA_IN: <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>

Libcurl: could not parse PKCS12 file

Добавлено: 28 Апрель 2022, 5:49
Admin
Начало нормальное, сертификат подхватывается но на урле авторизации и дальнейших 403 в ответ.

Libcurl: could not parse PKCS12 file

Добавлено: 28 Апрель 2022, 7:41
Ал
Admin писал(а): 28 Апрель 2022, 5:49 Начало нормальное, сертификат подхватывается но на урле авторизации и дальнейших 403 в ответ.
да, похоже "намудрили"...
Интересно - не проверял с рабочим вариантом, который "libcurl for Clarion v1.49 - работает", если посылать с неверным паролем или без пароля - как Дед выше предлагал, то возвращает одинаковое сообщение, что и когда пользуешься последней версией библиотеки?

Libcurl: could not parse PKCS12 file

Добавлено: 28 Апрель 2022, 12:02
Дед Пахом
А если передать сертификат и ключ в libcurl v1.49, то сервер вернёт тот же результат 403?