curl: (60) Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента

258
root@sclrdev:/home/sclr/certs/FreshCerts# curl --ftp-ssl --verbose ftp://{abc}/ -u trup:trup --cacert /etc/ssl/certs/ca-certificates.crt
* About to connect() to {abc} port 21 (#0)
*   Trying {abc}...
* Connected to {abc} ({abc}) port 21 (#0)
< 220-Cerberus FTP Server - Home Edition
< 220-This is the UNLICENSED Home Edition and may be used for home, personal use only
< 220-Welcome to Cerberus FTP Server
< 220 Created by Cerberus, LLC
> AUTH SSL
< 234 Authentication method accepted
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
user3812540
источник
У меня была похожая проблема. Это сработало для меня stackoverflow.com/a/29649024
Сагруоб
В моем случае superuser.com/a/719047/137881 помог.
Абдул
// В моем случае я получил эту ошибку от выполнения запросов curl к серверу HashiCorp Vault, пока не установил сертификат X509 с конечным объектом / Intermediates / root только в обратном порядке, каждый из которых был закодирован в Base64.
Натан Басанезе
// Какие исследования вы провели по этому вопросу до того, как скопировать ошибку сюда?
Натан Басанезе

Ответы:

231

Относительно ошибки «SSL-сертификат: невозможно получить сертификат локального эмитента». Важно отметить, что это относится к системе, отправляющей запрос CURL, а НЕ к серверу, получающему запрос.

  1. Загрузите последнюю версию cacert.pem с сайта https://curl.haxx.se/ca/cacert.pem.

  2. Добавьте следующую строку в php.ini: (если это общий хостинг, и у вас нет доступа к php.ini, вы можете добавить его в .user.ini в public_html).

    curl.cainfo="/path/to/downloaded/cacert.pem"

    Убедитесь, что вы заключили путь в двойные кавычки !!!

  3. По умолчанию процесс FastCGI будет анализировать новые файлы каждые 300 секунд (при необходимости вы можете изменить частоту, добавив пару файлов, как указано здесь https://ss88.uk/blog/fast-cgi-and-user-ini- файлы-новый-htaccess / ).

Dahomz
источник
1
Первый относится к сертификации операций, выполняемых с использованием библиотеки OpenSSL; второй запрос, сделанный с использованием cURL
Майк
4
На самом деле я боролся в течение часа, так как я не писал путь внутри кавычек. Поэтому , пожалуйста , принять к сведению здесьcurl.cainfo="/path/to/downloaded/cacert.pem" // Do not forget to write between quotes
Himanshu Upadhyay
12
Я не вижу никакой ссылки в вопросе на PHP. Зачем те ссылки в ответе? Если вопрос был отредактирован, то можно ли отредактировать ответ, чтобы отразить используемую командную строку?
Адам
5
@ Adam Хотя в этом вопросе не упоминается PHP, он является результатом поиска # 1 в Google для конкретного сообщения об ошибке, сгенерированного PHP. Так что, возможно, он не дает конкретного ответа на вопрос OP, но кажется, что он все еще полезен для сообщества.
19
1
Этот ответ вводил меня в заблуждение, так как это решение, связанное с PHP
Васиф Хан
142

Сбой, так как cURL не может проверить сертификат, предоставленный сервером.

Есть два варианта, чтобы заставить это работать:

  1. Используйте cURL с -kопцией, которая позволяет curl устанавливать небезопасные соединения, то есть cURL не проверяет сертификат.

  2. Добавьте корневой ЦС (ЦС, подписывающий сертификат сервера) в /etc/ssl/certs/ca-certificates.crt

Вам следует использовать вариант 2, так как он обеспечивает подключение к защищенному FTP-серверу.

Yuvika
источник
1
Я добавил свой файл rootCA.pem внутрь: - root @ sclrdev: / home / certs / FreshCerts # ll /etc/ssl/certs/rootCA.pem -rwxrwxrwx 1 корневой корень 1302 июля 8 00:09 / etc / ssl / certs / rootCA.pem * Даже я проверил файл ServerCertificate.pem с моим rootCA.pem: - root @ sclrdev: / home / certs / FreshCerts # openssl verify -CAfile rootCA.pem ../ServerCertificate.pem ServerCertificate.pem: OK И также содержимое файла rootCA.pem внутри ca-certificate.crt. root @ sclrdev: / home / sclr / subhendu / certs / FreshCerts # ll /etc/ssl/certs/ca-certificates.crt -rw-r - r-- 1 корневой корень 247945 8 июля, 00:10 / etc / ssl /certs/ca-certificates.crt
user3812540
Я не могу понять, где я иду не так. В трассировках WireShark я получаю следующую ошибку: - Клиент Hello Server Hello Hello, Сертификат, Server Hello Done Предупреждение (уровень: Fatal, Описание: unknown CA (48)) Можете ли вы мне помочь и помочь мне в этом?
user3812540
OpenSSL работает так, как он пытается завершить цепочку сертификатов во время проверки. Подписан ли сертификат вашего сервера промежуточным ЦС, а не корневым ЦС. например
Ювика
Мой сертификат подписан только корневым центром сертификации.
user3812540
1
Я получил сообщение об ошибке: - root @ sclrdev: ~ # openssl s_client -connect <server_ip>: 21 -showcerts CONNECTED (00000003) 3074050248: ошибка: 140770FC: процедуры SSL: SSL23_GET_SERVER_HELLO: неизвестный протокол: s23_clnt.c: 766: --- нет сертификата однорангового узла --- сертификата клиента нет. Имена CA отправлены --- рукопожатие SSL прочитало 7 байтов и записало 225 байтов --- новое, (NONE), шифр is (NONE) безопасное повторное согласование НЕ поддерживается Сжатие: NONE расширение: НЕТ --- Я не уверен, что это значит?
user3812540
69

Я решил эту проблему, добавив однострочный код в сценарии cURL:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

Предупреждение : это делает запрос абсолютно небезопасным (см. Ответ @YSU)!

Виджай Бхандари
источник
42
Это может помочь обойти проблему. Но это полностью пропускает идею https и системы сертификации.
Стефан Рихтер
1
Работает! Хороший быстрый и грязный обход, если вы не заботитесь о сертификате
Gilly
2
Это делает его совершенно небезопасным.
Moox
1
Я столкнулся с этой проблемой на моем локальном сервере, хотя тот же код хорошо работал на промежуточном сервере. Хорошо для меня, как это было на местном. Спасибо
Сабин
1
добавьте эту проверку, чтобы убедиться, что вы используете ее только с локальным сервером if( stristr("127.0.0.1",$_SERVER["SERVER_NAME"] ) || stristr("localhost",$_SERVER["SERVER_NAME"] )) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Hussain
20

В моем случае это была проблема с установкой моего сертификата на службу, которую я пытался использовать с помощью cURL. Мне не удалось связать / объединить промежуточные и корневые сертификаты в свой сертификат домена . Сначала было неочевидно, что это была проблема, потому что Chrome разработал ее и принял сертификат, несмотря на то, что пропустил промежуточный и корневой сертификаты.

После связывания сертификата все заработало как положено. Я в комплекте так

$ cat intermediate.crt >> domain.crt

И повторяется для всех промежуточных и корневых сертификатов.

Дэниел Уотроус
источник
2
У меня была похожая проблема, за исключением того, что мой Apache SSLCertificateChainFile не был установлен на правильный сертификат.
Уэйн Пиекарски
1
Обратите внимание, что если вы сделаете это, и у добавляемого эллипсиса не будет завершающего символа новой строки, то у вас будут строки, как -----END CERTIFICATE----------BEGIN CERTIFICATE-----в вашем комплекте, и вы получите непонятную ошибку:curl: (77) error setting certificate verify locations
Marty Neal
2
Я использую сертификаты letsencrypt, но развернул на сервере только сертификат и закрытый ключ. Chrome и curl на моем компьютере не жаловались, однако приложение nodejs, которое я создавал, не приняло сертификат. Развертывание полной цепочки на сервере решило проблему! Спасибо за указание правильного направления!
Пауло Сантос
В моем случае (сертификат comodo) промежуточные сертификаты были отправлены как my-domain.ca-bundle. Я должен был добавить это к my-domain.crt. Спасибо!
Джон Халка
18

Для меня простая установка сертификатов помогла:

sudo apt-get install ca-certificates
Максим Крушина
источник
2
Например, в некоторых небольших док-контейнерах это может быть не установлено, и нет смысла что-либо устранять, если весь пакет отсутствует.
muni764
16

Возникла эта проблема после установки Git Extensions v3.48. Пытался установить mysysgit снова, но та же проблема. В конце пришлось отключить (учтите, пожалуйста, последствия для безопасности!) Проверки Git SSL с помощью:

git config --global http.sslVerify false

но если у вас есть сертификат домена лучше добавить его в (Win7)

C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt
Рига
источник
23
Работает, но хочется скрыть симптом, а не лечить болезнь.
MonoThreaded
4
Отключение SSL-проверки очень опасно
jonasl
1
Вы можете обойтись без --globalотключения SSL только для хранилища, в котором у вас есть проблемы. См. Groups.google.com/forum/#!topic/git-for-windows/mlqn5J4OLlw для обсуждения текущих необходимых файлов crt.
Коппор
13

Мы столкнулись с этой ошибкой недавно. Оказывается, это было связано с неправильной установкой корневого сертификата в каталоге хранилища CA. Я использовал команду curl, где я указывал директорию CA напрямую. curl --cacert /etc/test/server.pem --capath /etc/test ...Эта команда каждый раз терпела неудачу с curl: (60) Проблема с сертификатом SSL: не удалось получить сертификат локального эмитента.

После использования strace curl ...было определено, что curl ищет корневой файл сертификата с именем 60ff2731.0, который основан на соглашении об именовании хэшей openssl. Поэтому я нашел эту команду для правильного импорта корневого сертификата:

ln -s rootcert.pem `openssl x509 -hash -noout -in rootcert.pem`.0

который создает мягкую ссылку

60ff2731.0 -> rootcert.pem

curl под обложками прочитал сертификат server.pem, определил имя корневого файла сертификата (rootcert.pem), преобразовал его в свое хеш-имя, затем выполнил поиск файла ОС, но не смог его найти.

Итак, выгода заключается в том, что используйте strace при запуске curl, когда ошибка curl неясна (была огромная помощь), а затем убедитесь, что правильно установили корневой сертификат, используя соглашение об именах openssl.

зм-верстальщик
источник
2
Фу, это помогло. Чтобы немного пояснить, что мне помогло: а) запустить strace curl ... б) поискать сбой stat () с чем-то-hex.0 в) поиск в гугле для чего-то-hex, найти соответствующий сертификат d) поместить найденный сертификат в / usr / local / share / ca-Certificates / (с расширением * .crt, так как * .pem не работал) e) запустить update-ca-Certificates. Тогда Бинго! - необходимая символическая ссылка была автоматически создана в / usr / lib / ssl / certs /
No-Bugs Hare
11

Скорее всего, отсутствует сертификат от сервера.

Root-> средне-> Сервер

Сервер должен отправить Сервер и Промежуточное звено как минимум.

Используйте openssl s_client -showcerts -starttls ftp -crlf -connect abc:21для устранения проблемы.

Если возвращается только один сертификат (либо самоподписанный, либо выданный), вы должны выбрать:

  1. починить сервер
  2. доверяйте этому сертификату и добавляйте его в свой сертификатный магазин CA (не лучшая идея)
  3. отключить доверие, например curl -k(очень плохая идея)

Если сервер вернулся, более одного, но не включая самоподписанный (корневой) сертификат:

  1. установите CA (корневой) сертификат в вашем магазине CA для этой цепочки, например, Google издателя. ( ТОЛЬКО если вы доверяете этому CA)
  2. иметь фиксированный сервер для отправки CA как часть цепочки
  3. доверять сертификату в цепи
  4. отключить доверие

Если сервер вернул сертификат корневого ЦС, то его нет в вашем хранилище ЦС, вы можете выбрать следующие варианты:

  1. Добавить (доверять) это
  2. отключить доверие

Я проигнорировал просроченные / отозванные сертификаты, потому что не было сообщений, указывающих на это. Но вы можете проверить сертификаты сopenssl x509 -text

Если вы подключаетесь к домашней версии ( https://www.cerberusftp.com/support/help/install-a-certificate/ ) ftp-сервера, я скажу, что он самоподписан.

Пожалуйста, опубликуйте более подробную информацию, например, вывод openssl.

Джейсон Пиерон
источник
6

В соответствии с документацией cURL вы также можете передать сертификат curlкоманде:

Получите сертификат CA, который может подтвердить удаленный сервер, и используйте соответствующую опцию, чтобы указать этот сертификат CA для проверки при подключении. Для libcurlхакеров:curl_easy_setopt(curl, CURLOPT_CAPATH, capath);

С помощью инструмента командной строки curl: --cacert [file]


Например:

curl --cacert mycertificate.cer -v https://www.stackoverflow.com
Гиоргос Мириантос
источник
5

Может быть достаточно просто обновить список сертификатов

sudo update-ca-certificates -f

update-ca-Certificates - это программа, которая обновляет каталог / etc / ssl / certs для хранения SSL-сертификатов и генерирует ca-certificate.crt, объединенный список сертификатов в одном файле.

Майкл П. Базос
источник
сделал это и все сделано после запуска. Но локон не работает. все та же ошибка.
AGamePlayer
1
Я сделал команду, и это не помогло, и я не мог поверить, что я должен делать все выше. А потом ваш ответ ... Спасибо за флаг "-f".
Алексей Штромберг
1
Это решение, к которому я также пришел. +1
СС Энн
3

Попробуйте переустановить curl в Ubuntu и обновить мои сертификаты CA, с помощью sudo update-ca-certificates --freshкоторых обновились сертификаты

Анкит Сингх
источник
2

На окнах у меня была эта проблема. Curl был установлен mysysgit, поэтому загрузка и установка последней версии устранили мою проблему.

В противном случае это хорошие инструкции по обновлению сертификата CA, которые вы можете попробовать.

Стив
источник
2

Да, вам также необходимо добавить сертификат CA. Добавление фрагмента кода в Node.js для ясного просмотра.

var fs = require(fs)
var path = require('path')
var https = require('https')
var port = process.env.PORT || 8080;
var app = express();

https.createServer({
key: fs.readFileSync(path.join(__dirname, './path to your private key/privkey.pem')),
cert: fs.readFileSync(path.join(__dirname, './path to your certificate/cert.pem')),
ca: fs.readFileSync(path.join(__dirname, './path to your CA file/chain.pem'))}, app).listen(port)
Рави Пракаш
источник
2

Я тоже столкнулся с этой проблемой. Я читал эту ветку, и большинство ответов для меня информативно, но слишком сложно. У меня нет опыта в сетевых темах, поэтому этот ответ для таких людей, как я.

В моем случае эта ошибка произошла из-за того, что я не включил промежуточный и корневой сертификаты рядом с сертификатом, который использовал в своем приложении.

Вот что я получил от поставщика SSL-сертификатов:

- abc.crt
- abc.pem
- abc-bunde.crt

В abc.crtфайле был только один сертификат:

-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----

Если бы я предоставил его в этом формате, браузер не отображал бы никаких ошибок (Firefox), но я получил бы curl: (60) SSL certificate : unable to get local issuer certificateошибку, когда сделал запрос curl.

Чтобы исправить эту ошибку, проверьте свой abc-bunde.crtфайл. Скорее всего, вы увидите что-то вроде этого:

-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----

Это ваши промежуточные и корневые сертификаты. Произошла ошибка, поскольку они отсутствуют в сертификате SSL, который вы предоставляете приложению.

Чтобы исправить ошибку, объедините содержимое обоих этих файлов в следующем формате:

-----BEGIN CERTIFICATE-----
/*certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*additional certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*other certificate content here*/
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
/*different certificate content here*/
-----END CERTIFICATE-----

Обратите внимание, что между сертификатами нет пробелов в конце или в начале файла. После того, как вы предоставите этот комбинированный сертификат для вашего приложения, ваша проблема должна быть решена.

Eorekan
источник
1

На окнах - если вы запускаете из CMD

> curl -X GET "https://some.place"

Загрузите cacert.pem с веб-сайта https://curl.haxx.se/docs/caextract.html.

Установите переменную среды:

CURL_CA_BUNDLE = C:\Program Files\curl-7.57.0\src\cacert.pem

и перезагрузить среду

refreshenv

Теперь попробуйте еще раз

Причина возникновения проблемы: https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate/replies/95548

RASOR
источник
1

Мой случай был другим. Я размещаю сайт за брандмауэром. Ошибка была вызвана pfSense.

Network layout: |Web Server 10.x.x.x| <-> |pfSense 49.x.x.x| <-> |Open Internet|

Я случайно нашел причину, благодаря этому ответу .


Все хорошо, когда я зашел на свой сайт из WAN.

Однако, когда сайт был доступен из локальной сети (например, когда Wordpress сделал curlзапрос на свой собственный сервер, несмотря на использование IP-адреса WAN 49.x.x.x), ему была предоставлена ​​страница входа в систему pfSense.

Я идентифицировал сертификат как pfSense webConfigurator Self-Signed Certificate. Не зря curlвыкинул ошибку.

Причина: произошло то, что curlиспользовалось IP-адрес WAN сайта 49.x.x.x. Но в контексте веб-сервера IP WAN был межсетевым экраном.

Отладка: я обнаружил, что получаю сертификат pfSense.

Решение. На сервере, на котором размещен сайт, укажите свое доменное имя на 127.0.0.1.

Применяя решение, curlзапрос был правильно обработан веб-сервером и не переадресован брандмауэру, который ответил отправкой страницы входа.

PNDA
источник
0

Это проблема хранилища сертификатов SSH. Вам необходимо загрузить действительный файл сертификата сертификата с веб-сайта целевого центра сертификации, а затем создать файл программной ссылки, чтобы дать команду ssl о доверенном сертификате.

openssl x509 -hash -noout -in DigiCert_Global_Root_G3.pem

ты получишь dd8e9d41

построить ссылку Solf с хэш-номером и суффикс файла с .0 (точка-ноль)

dd8e9d41.0

Тогда попробуйте еще раз.

Роджер
источник
0
  1. Скачать https://curl.haxx.se/ca/cacert.pem

  2. После загрузки переместите этот файл на свой сервер wamp.

    Для опыта: D: \ wamp \ bin \ php \

  3. Затем добавьте следующую строку в файл php.ini внизу.

curl.cainfo = "D: \ WAMP \ Bin \ PHP \ cacert.pem"

  1. Теперь перезапустите сервер Wamp.
Сандип Кумар
источник
0

Вы должны изменить сертификат сервера с cert.pemна У fullchain.pem
меня была такая же проблема с Perl HTTPS Daemon:
Я изменил:
SSL_cert_file => '/etc/letsencrypt/live/mydomain/cert.pem'
на:
SSL_cert_file => '/etc/letsencrypt/live/mydomain/fullchain.pem'

к-messaoudi
источник
-1

До сих пор я видел эту проблему в корпоративных сетях по двум причинам, одна или обе из которых могут иметь место в вашем случае:

  1. Из-за того, как работают сетевые прокси , они имеют свои собственные сертификаты SSL, тем самым изменяя сертификаты, которые видит curl. Многие или большинство корпоративных сетей вынуждают вас использовать эти прокси.
  2. Некоторые антивирусные программы, работающие на клиентских ПК, также работают аналогично HTTPS-прокси, поэтому они могут сканировать ваш сетевой трафик. Ваша антивирусная программа может иметь возможность отключить эту функцию (если ваши администраторы разрешат ее).

Как примечание № 2 выше, вы можете почувствовать беспокойство по поводу сканирования вашего предположительно безопасного трафика TLS. Это корпоративный мир для вас.

rdguam
источник
-1

Была эта проблема, и она не была решена с более новой версией. / etc / certs имел корневой сертификат, браузер сказал, что все в порядке. После некоторого тестирования я получил от ssllabs.com предупреждение о том, что моя цепочка не завершена (действительно, это была цепочка для старого сертификата, а не для нового). После исправления цепочки сертификатов все было хорошо, даже с локонами.

Фрэнк
источник
-1

У меня была эта проблема с Digicert всех CA. Я создал файл digicertca.pem, который был просто промежуточным и корневым, вставленным в один файл.

curl https://cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
curl https://cacerts.digicert.com/DigiCertSHA2SecureServerCA.crt.pem

curl -v https://mydigisite.com/sign_on --cacert DigiCertCA.pem
...
*  subjectAltName: host "mydigisite.com" matched cert's "mydigisite.com"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert SHA2 Secure Server CA
*  SSL certificate verify ok.
> GET /users/sign_in HTTP/1.1
> Host: mydigisite.com
> User-Agent: curl/7.65.1
> Accept: */*
...

У Эорекана был ответ, но я и еще один получили возможность проголосовать за его ответ.

Кирт Карсон
источник
-2

Специально для Windowsпользователей, использующих curl-7.57.0-win64-mingwили аналогичную версию.

Это немного поздно, и существующие ответы верны. Но мне все еще пришлось немного постараться, чтобы заставить его работать на моей машине с Windows, хотя процесс на самом деле довольно прост. Итак, делимся пошаговым процессом.

Эта ошибка в основном означает, что curl не может проверить сертификат целевого URI. Если вы доверяете издателю сертификата (CA), вы можете добавить его в список доверенных сертификатов.

Для этого просмотрите URI (например, в Chrome) и выполните шаги

  1. Щелкните правой кнопкой мыши значок безопасного замка
  2. Нажмите на сертификат, откроется окно с информацией о сертификате
  3. Перейти на вкладку «Путь сертификации»
  4. Нажмите ROOT сертификат
  5. Нажмите View Certificate, откроется другое окно сертификата.
  6. Перейти на вкладку Подробности
  7. Нажмите кнопку «Копировать в файл», откроется мастер экспорта
  8. Нажмите кнопку "Далее
  9. Выберите «X.509 (.CER) в кодировке Base-64»
  10. Нажмите кнопку "Далее
  11. Дайте понятное имя, например, «MyDomainX.cer» (перейдите к нужному каталогу)
  12. Нажмите кнопку "Далее
  13. Нажмите Finish, он сохранит файл сертификата
  14. Теперь откройте этот .cerфайл и скопируйте его содержимое (включая ----- НАЧАТЬ СЕРТИФИКАТ ----- и ----- КОНЕЦ СЕРТИФИКАТ -----)
  15. Теперь перейдите в каталог, где curl.exeсохраняется, напримерC:\SomeFolder\curl-7.57.0-win64-mingw\bin
  16. Откройте curl-ca-bundle.crtфайл в текстовом редакторе
  17. Добавьте скопированный текст сертификата в конец файла. Сохранить

Теперь ваша команда должна хорошо выполняться в curl.

Arghya C
источник
3
Некоторые комментарии по поводу причины понижения голоса будут оценены
Arghya C
Я не могу найти файл с именем "curl-ca-bundle.crt" в "C: \ xampp \ apache \ bin" (windows). Полагаю, что отрицательные голоса были связаны с этим У меня есть мой "curl.exe" в папке "bin", упомянутой выше
kathikeyan A
-4

это может помочь вам для жрет:

$client = new Client(env('API_HOST'));
$client->setSslVerification(false);

проверено на жрет / жрет 3. *

fico7489
источник
-5

Простое решение: IN ~/.sdkman/etc/config, изменитьsdkman_insecure_ssl=true

Шаги:
нано ~/.sdkman/etc/config
изменить, sdkman_insecure_ssl=falseчтобы sdkman_insecure_ssl=true
сохранить и выйти

biniam
источник