ошибка cURL 58: SSL: не удается загрузить сертификат и его закрытый ключ: OSStatus -25299 на Mac

Код отлично работает в Ubuntu vagrant box, но на локальных MacOs он не загружает сертификаты, говорящие

cURL error 58: SSL: Can't load the certificate "..." and its private key: OSStatus -25299

Я исследовал, что у Mac есть смысл поддерживать собственный API OS X вместо OpenSSL.

И мне нужно преобразовать pem + cert в pkcs12 вот так.

openssl pkcs12 -export -in ./client.crt -inkey ./client.pem -out client.p12

Но у меня это не работает, потому что мой PHP-сервер работает на Ubuntu, и я не хочу ломать то, что работает. Моя задача — заставить его работать на Mac.

Я бы предпочел установить curl с поддержкой openssl. Я пробовал это:

$ brew uninstall curl
$ brew install curl --with-openssl
$ brew link curl --force
$ curl --version

Но это не решило проблему.

Пожалуйста, скажите мне, что я сделал неправильно.

Спасибо.


person Yevgeniy Afanasyev    schedule 21.11.2016    source источник
comment
Связано с ошибкой github.com/curl/curl/issues/283   -  person user2707671    schedule 02.02.2017


Ответы (1)


установка curl через brew и с поддержкой openssl, как указано в вопросе, является правильным подходом. однако вам нужно явно вызвать его из его установочного каталога /usr/local/opt/curl/bin/curl -v -k --key.., так как brew не свяжет его с /usr/local, как указано при установке

This formula is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> ~/.zshrc

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/curl/lib
    CPPFLAGS: -I/usr/local/opt/curl/include
For pkg-config to find this software you may need to set:
    PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig
person pHiL    schedule 14.07.2017
comment
можете ли вы указать, где установить эти пути? Я не понимаю тему, где это сделать и что делать... - person novski; 19.06.2018
comment
@novski, чтобы навсегда установить переменную PATH, добавьте ее в rc-файл оболочки. это может быть ~/.zshrc или более стандартным/вероятно~/.bashrc, если вам нужен openssl в каком-то программном проекте, который вы хотите собрать, вы должны установить LDFLAGS CPPFLAGS и, возможно, PKG_CONFIG_PATH в инструменте сборки. в противном случае игнорировать их - person pHiL; 20.06.2018