Скручивание ошибок "no start line" LibreSSL после обновления до OSX High Sierra

Я пытаюсь подключиться к серверу с помощью curl; этот сервер требует файл сертификата.p12 и фразу-пароль. Это не было проблемой в течение нескольких недель, когда я запускал свою программу. Однако после обновления до High Sierra я теперь получаю ошибки LibreSSL. Мои коллеги под управлением Windows 7 и 10 также не имеют этой проблемы:

В терминале:

$ curl -k https://server_metadata_link/ --cert certificate.p12 --pass "пароль"

curl: (58) не удалось загрузить сертификат клиента PEM, ошибка LibreSSL:0906D06C: подпрограммы PEM:PEM_read_bio: нет строки начала (ключ не найден, неверная фраза или неправильный формат файла?)

В R:

> set_config (config (ssl_verifyhost = 0L, ssl_verifypeer = 0L))

> set_config (config (sslcert = certificate.p12, keypasswd = пароль))

> GET (" https://server_metadata_link/")

Ошибка в curl::curl_fetch_memory(url, handle = handle): не удалось загрузить клиентский сертификат PEM, ошибка LibreSSL:0906D06C: подпрограммы PEM:PEM_read_bio: нет начальной строки, (не найден ключ, неверная фраза или неправильный формат файла?)

Я бы предпочел не возвращаться в Сьерру, так как у меня есть коллега с новым Mac, который застрял в High Sierra. Я не думаю, что есть ошибка с сертификатами, как я уже сказал, это работало нормально до обновления до High Sierra. Изучив эту проблему, я думаю, что это может быть связано с переходом Mac с OpenSSL на LibreSSL в High Sierra. Я не знаю, какое влияние это может оказать на серверную часть, но это может объяснить, почему только у меня и моего коллеги есть ошибка, а у другого коллеги из Sierra нет.

Другая проблема может заключаться в том, что моя версия curl - 7.54.0 (как и моя коллега по High Sierra), а последняя - 7.58.0. Я не знаю, может ли это также вызывать проблему, но как отдельную проблему я не уверен, как заставить мой Mac использовать самую последнюю версию curl; так как он включен в Mac, Homebrew не позволит мне установить последнюю версию.

Единственное другое замечание, которое у меня есть, это то, что если я изменю конфигурацию R с "sslcert = certificate.p12" на "sslkey = certificate.p12" или команду терминала с "--cert certificate.p12" на "--key Certificate". p12 "Я получаю обычную ошибку 403, говорящую о том, что я не могу подключиться к серверу.

Буду признателен за любую помощь, и, пожалуйста, дайте мне знать, если есть какая-либо другая информация, которую я должен предоставить. Заранее спасибо.

1 ответ

Homebrew позволит вам установить последнюю версию homebrew, но она предназначена только для бочонков, поскольку OSX предоставляет более старую версию curl:

$ brew install curl
==> Downloading https://homebrew.bintray.com/bottles/curl-7.58.0.high_sierra.bottle.tar.gz
Already downloaded: /Users/kyle.varga/Library/Caches/Homebrew/curl-7.58.0.high_sierra.bottle.tar.gz
==> Pouring curl-7.58.0.high_sierra.bottle.tar.gz
==> Caveats
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

Вам нужно запустить команду экспорта для его запуска. После обновления $PATH вы должны получить

$ which -a curl
/usr/local/opt/curl/bin/curl
/usr/bin/curl

После этого, при запуске curl с файлом p12, он просит меня разблокировать связку ключей OSX и разрешает could not load PEM client certificate ошибка.

Другие вопросы по тегам