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.
curl
ssl
openssl
ssl-certificate
x509certificate
user3812540
источник
источник
Ответы:
Относительно ошибки «SSL-сертификат: невозможно получить сертификат локального эмитента». Важно отметить, что это относится к системе, отправляющей запрос CURL, а НЕ к серверу, получающему запрос.
Загрузите последнюю версию cacert.pem с сайта https://curl.haxx.se/ca/cacert.pem.
Добавьте следующую строку в php.ini: (если это общий хостинг, и у вас нет доступа к php.ini, вы можете добавить его в .user.ini в public_html).
curl.cainfo="/path/to/downloaded/cacert.pem"
Убедитесь, что вы заключили путь в двойные кавычки !!!
По умолчанию процесс FastCGI будет анализировать новые файлы каждые 300 секунд (при необходимости вы можете изменить частоту, добавив пару файлов, как указано здесь https://ss88.uk/blog/fast-cgi-and-user-ini- файлы-новый-htaccess / ).
источник
curl.cainfo="/path/to/downloaded/cacert.pem" // Do not forget to write between quotes
Сбой, так как cURL не может проверить сертификат, предоставленный сервером.
Есть два варианта, чтобы заставить это работать:
Используйте cURL с
-k
опцией, которая позволяет curl устанавливать небезопасные соединения, то есть cURL не проверяет сертификат.Добавьте корневой ЦС (ЦС, подписывающий сертификат сервера) в
/etc/ssl/certs/ca-certificates.crt
Вам следует использовать вариант 2, так как он обеспечивает подключение к защищенному FTP-серверу.
источник
Я решил эту проблему, добавив однострочный код в сценарии cURL:
Предупреждение : это делает запрос абсолютно небезопасным (см. Ответ @YSU)!
источник
if( stristr("127.0.0.1",$_SERVER["SERVER_NAME"] ) || stristr("localhost",$_SERVER["SERVER_NAME"] )) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
В моем случае это была проблема с установкой моего сертификата на службу, которую я пытался использовать с помощью cURL. Мне не удалось связать / объединить промежуточные и корневые сертификаты в свой сертификат домена . Сначала было неочевидно, что это была проблема, потому что Chrome разработал ее и принял сертификат, несмотря на то, что пропустил промежуточный и корневой сертификаты.
После связывания сертификата все заработало как положено. Я в комплекте так
И повторяется для всех промежуточных и корневых сертификатов.
источник
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
в вашем комплекте, и вы получите непонятную ошибку:curl: (77) error setting certificate verify locations
Для меня простая установка сертификатов помогла:
источник
Возникла эта проблема после установки Git Extensions v3.48. Пытался установить mysysgit снова, но та же проблема. В конце пришлось отключить (учтите, пожалуйста, последствия для безопасности!) Проверки Git SSL с помощью:
но если у вас есть сертификат домена лучше добавить его в (Win7)
источник
--global
отключения SSL только для хранилища, в котором у вас есть проблемы. См. Groups.google.com/forum/#!topic/git-for-windows/mlqn5J4OLlw для обсуждения текущих необходимых файлов crt.Мы столкнулись с этой ошибкой недавно. Оказывается, это было связано с неправильной установкой корневого сертификата в каталоге хранилища CA. Я использовал команду curl, где я указывал директорию CA напрямую.
curl --cacert /etc/test/server.pem --capath /etc/test ...
Эта команда каждый раз терпела неудачу с curl: (60) Проблема с сертификатом SSL: не удалось получить сертификат локального эмитента.После использования
strace curl ...
было определено, что curl ищет корневой файл сертификата с именем 60ff2731.0, который основан на соглашении об именовании хэшей openssl. Поэтому я нашел эту команду для правильного импорта корневого сертификата:который создает мягкую ссылку
curl под обложками прочитал сертификат server.pem, определил имя корневого файла сертификата (rootcert.pem), преобразовал его в свое хеш-имя, затем выполнил поиск файла ОС, но не смог его найти.
Итак, выгода заключается в том, что используйте strace при запуске curl, когда ошибка curl неясна (была огромная помощь), а затем убедитесь, что правильно установили корневой сертификат, используя соглашение об именах openssl.
источник
Скорее всего, отсутствует сертификат от сервера.
Root-> средне-> Сервер
Сервер должен отправить Сервер и Промежуточное звено как минимум.
Используйте
openssl s_client -showcerts -starttls ftp -crlf -connect abc:21
для устранения проблемы.Если возвращается только один сертификат (либо самоподписанный, либо выданный), вы должны выбрать:
curl -k
(очень плохая идея)Если сервер вернулся, более одного, но не включая самоподписанный (корневой) сертификат:
Если сервер вернул сертификат корневого ЦС, то его нет в вашем хранилище ЦС, вы можете выбрать следующие варианты:
Я проигнорировал просроченные / отозванные сертификаты, потому что не было сообщений, указывающих на это. Но вы можете проверить сертификаты с
openssl x509 -text
Если вы подключаетесь к домашней версии ( https://www.cerberusftp.com/support/help/install-a-certificate/ ) ftp-сервера, я скажу, что он самоподписан.
Пожалуйста, опубликуйте более подробную информацию, например, вывод openssl.
источник
В соответствии с документацией cURL вы также можете передать сертификат
curl
команде:Например:
источник
Может быть достаточно просто обновить список сертификатов
источник
Попробуйте переустановить curl в Ubuntu и обновить мои сертификаты CA, с помощью
sudo update-ca-certificates --fresh
которых обновились сертификатыисточник
На окнах у меня была эта проблема. Curl был установлен mysysgit, поэтому загрузка и установка последней версии устранили мою проблему.
В противном случае это хорошие инструкции по обновлению сертификата CA, которые вы можете попробовать.
источник
Да, вам также необходимо добавить сертификат CA. Добавление фрагмента кода в Node.js для ясного просмотра.
источник
Я тоже столкнулся с этой проблемой. Я читал эту ветку, и большинство ответов для меня информативно, но слишком сложно. У меня нет опыта в сетевых темах, поэтому этот ответ для таких людей, как я.
В моем случае эта ошибка произошла из-за того, что я не включил промежуточный и корневой сертификаты рядом с сертификатом, который использовал в своем приложении.
Вот что я получил от поставщика SSL-сертификатов:
В
abc.crt
файле был только один сертификат:Если бы я предоставил его в этом формате, браузер не отображал бы никаких ошибок (Firefox), но я получил бы
curl: (60) SSL certificate : unable to get local issuer certificate
ошибку, когда сделал запрос curl.Чтобы исправить эту ошибку, проверьте свой
abc-bunde.crt
файл. Скорее всего, вы увидите что-то вроде этого:Это ваши промежуточные и корневые сертификаты. Произошла ошибка, поскольку они отсутствуют в сертификате SSL, который вы предоставляете приложению.
Чтобы исправить ошибку, объедините содержимое обоих этих файлов в следующем формате:
Обратите внимание, что между сертификатами нет пробелов в конце или в начале файла. После того, как вы предоставите этот комбинированный сертификат для вашего приложения, ваша проблема должна быть решена.
источник
На окнах - если вы запускаете из CMD
Загрузите cacert.pem с веб-сайта https://curl.haxx.se/docs/caextract.html.
Установите переменную среды:
и перезагрузить среду
Теперь попробуйте еще раз
Причина возникновения проблемы: https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate/replies/95548
источник
Мой случай был другим. Я размещаю сайт за брандмауэром. Ошибка была вызвана pfSense.
Я случайно нашел причину, благодаря этому ответу .
Все хорошо, когда я зашел на свой сайт из WAN.
Однако, когда сайт был доступен из локальной сети (например, когда Wordpress сделал
curl
запрос на свой собственный сервер, несмотря на использование IP-адреса WAN49.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
запрос был правильно обработан веб-сервером и не переадресован брандмауэру, который ответил отправкой страницы входа.источник
Это проблема хранилища сертификатов SSH. Вам необходимо загрузить действительный файл сертификата сертификата с веб-сайта целевого центра сертификации, а затем создать файл программной ссылки, чтобы дать команду ssl о доверенном сертификате.
openssl x509 -hash -noout -in DigiCert_Global_Root_G3.pem
ты получишь
dd8e9d41
построить ссылку Solf с хэш-номером и суффикс файла с .0 (точка-ноль)
dd8e9d41.0
Тогда попробуйте еще раз.
источник
Скачать https://curl.haxx.se/ca/cacert.pem
После загрузки переместите этот файл на свой сервер wamp.
Для опыта: D: \ wamp \ bin \ php \
Затем добавьте следующую строку в файл php.ini внизу.
curl.cainfo = "D: \ WAMP \ Bin \ PHP \ cacert.pem"
источник
Вы должны изменить сертификат сервера с
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'
источник
До сих пор я видел эту проблему в корпоративных сетях по двум причинам, одна или обе из которых могут иметь место в вашем случае:
Как примечание № 2 выше, вы можете почувствовать беспокойство по поводу сканирования вашего предположительно безопасного трафика TLS. Это корпоративный мир для вас.
источник
Была эта проблема, и она не была решена с более новой версией. / etc / certs имел корневой сертификат, браузер сказал, что все в порядке. После некоторого тестирования я получил от ssllabs.com предупреждение о том, что моя цепочка не завершена (действительно, это была цепочка для старого сертификата, а не для нового). После исправления цепочки сертификатов все было хорошо, даже с локонами.
источник
У меня была эта проблема с Digicert всех CA. Я создал файл digicertca.pem, который был просто промежуточным и корневым, вставленным в один файл.
У Эорекана был ответ, но я и еще один получили возможность проголосовать за его ответ.
источник
Специально для
Windows
пользователей, использующихcurl-7.57.0-win64-mingw
или аналогичную версию.Это немного поздно, и существующие ответы верны. Но мне все еще пришлось немного постараться, чтобы заставить его работать на моей машине с Windows, хотя процесс на самом деле довольно прост. Итак, делимся пошаговым процессом.
Эта ошибка в основном означает, что curl не может проверить сертификат целевого URI. Если вы доверяете издателю сертификата (CA), вы можете добавить его в список доверенных сертификатов.
Для этого просмотрите URI (например, в Chrome) и выполните шаги
.cer
файл и скопируйте его содержимое (включая ----- НАЧАТЬ СЕРТИФИКАТ ----- и ----- КОНЕЦ СЕРТИФИКАТ -----)curl.exe
сохраняется, напримерC:\SomeFolder\curl-7.57.0-win64-mingw\bin
curl-ca-bundle.crt
файл в текстовом редактореТеперь ваша команда должна хорошо выполняться в curl.
источник
это может помочь вам для жрет:
проверено на жрет / жрет 3. *
источник
Простое решение: IN
~/.sdkman/etc/config
, изменитьsdkman_insecure_ssl=true
Шаги:
нано
~/.sdkman/etc/config
изменить,
sdkman_insecure_ssl=false
чтобыsdkman_insecure_ssl=true
сохранить и выйти
источник