cUrl не может загрузить сертификаты pem с указанного пути

Это странно: пытаюсь подключиться к серверу, который требует локальных файлов pem, но я получаю эту ошибку:
cURL error 58: unable to load client key: -8178 (SEC_ERROR_BAD_KEY)

Странно то, что если я перейду к пути, где находятся файлы pem, это сработает. Если я приведу точный путь, он выдаст ошибку.

Вот команды, которые работают:
cd /path/to
curl --insecure --key key.pem --cacert ca.pem --cert client.pem:xxxxxxxxx https://server.com/action/id
(отвечает с правильным HTML)

Эти дают ошибку:
cd /path/to
curl --insecure --key /path/to/key.pem --cacert /path/to/ca.pem --cert /path/to/client.pem:xxxxxxxxx https://server.com/action/file

Любые идеи о том, как выполнить команду, а также указать точные пути? Я полностью сбит с толку …

РЕДАКТИРОВАТЬ: Просто понял, что это может быть полезно:

завиток — версия:
curl 7.51.0 (x86_64-redhat-linux-gnu) libcurl/7.51.0 NSS/3.28.4 zlib/1.2.8 libidn2/0.16 libpsl/0.6.2 (+libicu/50.1.2) libssh2/1.4.2 nghttp2/1.21.1
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz HTTP2 UnixSockets PSL

uname -a:
4.9.20-11.31.amzn1.x86_64 #1 SMP Thu Apr 13 01:53:57 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

0

Решение

Вот решение, которое сработало:

1-й преобразовать файл .p12 в ключ & Cert .pem файлы:
openssl pkcs12 -in given_keystore.p12 -out key.pem -nodes
openssl pkcs12 -in given_keystore.p12 -out cert.pem -nokeys

2-й тест это работает:
curl --cert ./cert.pem --key ./key.pem https://provider.com/service/foobar -v
→ результат правильно 404 not found (вместо ошибок или 403)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]