MacOS X Ошибка с CURL при работе с SSL

OpenSSL

В MacOS X если вы попытаетесь сделать запрос по протоколу https с использованием сертификата, то вероятно всего получите следующую ошибку

* Hostname was NOT found in DNS cache
* Trying xx.xx.xx.xx...
* Connected to example.com (xx.xx.xx.xx) port abcd (#0)
* WARNING: SSL: CURLOPT_SSLKEY is ignored by Secure Transport. The private key must be in the Keychain.
* WARNING: SSL: Certificate type not set, assuming PKCS#12 format.
* SSL: Can't load the certificate "/path/to/folder/cert.test.pem" and its private key: OSStatus -25299
* Closing connection 0

Проблема описана тут http://curl.haxx.se/mail/archive-2013-10/0036.html.

Вкратце Apple заменила OpenSSL на собственный Secure Transport движок, которые работает с TLS версиями 1.1 и 1.2.

Теперь сертификаты учитываются только, если они находятся в репозитории Keychain, о чем говорится в ошибке.

Но выход есть: можно использовать старый добрый OpenSSL

brew install curl --with-openssl
brew link curl --force
hash -r
curl

Дополнительные ссылки:
http://www.farces.com/wikis/naked-server/php/php-openssl/ (для PHP)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

:D :) ^_^ :( :o 8) ;-( :lol: xD :wink: :evil: :p :whistle: :woot: :sleep: =] :sick: :straight: :ninja: :love: :kiss: :angel: :bandit: :alien: