Я пытаюсь подключиться к серверу с помощью 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 = сертификат.p12, keypasswd = пароль))
> GET("https://server_metadata_link")
Ошибка в curl::curl_fetch_memory(url, handle = handle): не удалось загрузить сертификат клиента PEM, ошибка LibreSSL: 0906D06C:подпрограммы PEM:PEM_read_bio:нет стартовой строки, (ключ не найден, неверная фраза-пароль или неправильный формат файла? )
Я бы предпочел не возвращаться к Sierra, так как у меня есть коллега с новым 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, говорящую, что я не могу подключиться к серверу.
Любая помощь будет оценена по достоинству, и, пожалуйста, дайте мне знать, если есть какая-либо другая информация, которую я должен предоставить. Заранее спасибо.