curl: (60) problema con el certificado SSL: no se puede obtener el certificado de emisor local

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.
usuario3812540
fuente
He tenido un problema similar. Esto funcionó para mí stackoverflow.com/a/29649024
Sagruob
En mi caso, superuser.com/a/719047/137881 ayudó.
Abdull
//, en mi caso, recibí este error al hacer solicitudes curl al servidor HashiCorp Vault hasta que instalé un certificado X509 con la entidad final / Intermedios / raíz solo en orden inverso, cada uno de los cuales estaba codificado en Base64.
Nathan Basanese
//, ¿Qué investigación hiciste sobre esto antes de copiar el error aquí?
Nathan Basanese

Respuestas:

231

En relación con el problema 'Certificado SSL: no se puede obtener el certificado del emisor local'. Es importante tener en cuenta que esto se aplica al sistema que envía la solicitud CURL y NO al servidor que recibe la solicitud.

  1. Descargue el último cacert.pem de https://curl.haxx.se/ca/cacert.pem

  2. Agregue la siguiente línea a php.ini: (si se trata de un alojamiento compartido y no tiene acceso a php.ini, puede agregar esto a .user.ini en public_html).

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

    ¡Asegúrate de encerrar el camino entre comillas dobles!

  3. De forma predeterminada, el proceso FastCGI analizará nuevos archivos cada 300 segundos (si es necesario, puede cambiar la frecuencia agregando un par de archivos como se sugiere aquí https://ss88.uk/blog/fast-cgi-and-user-ini- archivos-el-nuevo-htaccess / ).

Dahomz
fuente
1
El primero se refiere a la certificación de operaciones realizadas utilizando la biblioteca OpenSSL; el segundo a las solicitudes realizadas con cURL
Mike
44
En realidad luché durante una hora ya que no escribí la ruta entre comillas. Así que por favor tome nota aquícurl.cainfo="/path/to/downloaded/cacert.pem" // Do not forget to write between quotes
Himanshu Upadhyay
12
No veo ninguna referencia en la pregunta a PHP. ¿Por qué las referencias en la respuesta? Si la pregunta se ha editado, ¿se podría editar la respuesta para reflejar la línea de comando que se está utilizando ahora?
Adam
55
@Adam Si bien la pregunta no menciona PHP, este aparece como el resultado de búsqueda # 1 en Google para el mensaje de error específico generado por PHP. Entonces, tal vez no responda específicamente la pregunta de OP, pero parece que sigue siendo útil para la comunidad.
rinogo
1
Esta respuesta fue engañosa para mí ya que es una solución relacionada con PHP
Wasif Khan
142

Está fallando ya que cURL no puede verificar el certificado proporcionado por el servidor.

Hay dos opciones para que esto funcione:

  1. Use cURL con la -kopción que permite que curl realice conexiones inseguras, es decir, cURL no verifica el certificado.

  2. Agregue la CA raíz (la CA que firma el certificado del servidor) a /etc/ssl/certs/ca-certificates.crt

Debe usar la opción 2, ya que es la opción que garantiza que se está conectando al servidor FTP seguro.

Yuvika
fuente
1
Agregué mi archivo rootCA.pem dentro: - root @ sclrdev: / home / certs / FreshCerts # ll /etc/ssl/certs/rootCA.pem -rwxrwxrwx 1 root root 1302 8 de julio a las 00:09 / etc / ssl / certs / rootCA.pem * Incluso verifiqué el archivo ServerCertificate.pem con mi rootCA.pem: - root @ sclrdev: / home / certs / FreshCerts # openssl verificar -CAfile rootCA.pem ../ServerCertificate.pem ServerCertificate.pem: OK Y también el contenido de rootCA.pem dentro de ca-certificados.crt. root @ sclrdev: / home / sclr / subhendu / certs / FreshCerts # ll /etc/ssl/certs/ca-certificates.crt -rw-r - r-- 1 root root 247945 8 de julio 00:10 / etc / ssl /certs/ca-certificates.crt
user3812540
No soy capaz de averiguar a dónde me estoy equivocando. En las trazas de WireShark, aparece el siguiente error: - Cliente Hello Server Hello, Certificado, Server Hello Done Alert (nivel: Fatal, Descripción: CA desconocido (48)) ¿Puede guiarme y ayudarme en esto?
user3812540
La forma en que openssl funciona es que intenta completar la cadena de certificados durante la verificación. ¿Su certificado de servidor está firmado por una CA intermedia y no por una CA raíz? por ejemplo
Yuvika
Mi certificado está firmado únicamente por la CA raíz.
user3812540
1
Recibí un error: - root @ sclrdev: ~ # openssl s_client -connect <server_ip>: 21 -showcerts CONNECTED (00000003) 3074050248: error: 140770FC: rutinas SSL: SSL23_GET_SERVER_HELLO: protocolo desconocido: s23_clnt.c: 766: --- no hay certificado de pares disponible --- No se envían nombres de CA de certificados de clientes --- El protocolo de enlace SSL ha leído 7 bytes y ha escrito 225 bytes --- Nuevo, (NINGUNO), Cipher is (NINGUNO) NO se admite la renegociación segura Compresión: NINGUNA Expansión: NINGUNO --- No estoy seguro de lo que esto significa exactamente?
user3812540
69

He resuelto este problema agregando un código de línea en el script cURL:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

Advertencia : ¡Esto hace que la solicitud sea completamente insegura (vea la respuesta de @YSU)!

Vijay Bhandari
fuente
42
Esto puede ayudar a evitar el problema. Pero extraña totalmente la idea de https y el sistema de certificación.
Stephan Richter
1
¡Trabajos! Buen desvío rápido y sucio si no te importa el certificado
Gilly
2
Esto lo hace completamente inseguro.
Moox
1
Estaba enfrentando este problema en mi servidor local, aunque el mismo código funcionó bien en el servidor provisional. Bien para mí, ya que era local. Gracias
sabin
1
añadir esta comprobación para asegurarse de que lo utiliza solamente con el servidor local if( stristr("127.0.0.1",$_SERVER["SERVER_NAME"] ) || stristr("localhost",$_SERVER["SERVER_NAME"] )) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Hussain
20

En mi caso, resultó ser un problema con la instalación de mi certificado en el servicio que estaba tratando de consumir con cURL. No pude agrupar / concatenar los certificados intermedios y raíz en mi certificado de dominio . Al principio no era obvio que este era el problema porque Chrome lo resolvió y aceptó el certificado a pesar de omitir los certificados intermedios y raíz.

Después de agrupar el certificado, todo funcionó como se esperaba. Me puse así

$ cat intermediate.crt >> domain.crt

Y se repite para todos los certificados intermedios y raíz.

Daniel Watrous
fuente
2
Tuve un problema similar, excepto que no tenía mi Apache SSLCertificateChainFile configurado en el certificado correcto.
Wayne Piekarski el
1
Tenga en cuenta que si hace esto, y los CRT que está agregando no tienen una nueva línea final, entonces tendrá líneas como -----END CERTIFICATE----------BEGIN CERTIFICATE-----en su paquete, y obtendrá el oscuro error:curl: (77) error setting certificate verify locations
Marty Neal
2
Estoy usando certificados de letsencrypt pero implementé solo el certificado y la clave privada en el servidor. Chrome y curl en mi computadora no se quejaban, sin embargo, una aplicación de nodejs que estaba construyendo no aceptaba el certificado. La implementación de la cadena completa en el servidor solucionó el problema. ¡Gracias por señalar la dirección correcta!
Paulo Santos
En mi caso (certificado de comodo), enviaron los certificados intermedios como my-domain.ca-bundle. Tuve que agregar eso a my-domain.crt. ¡Gracias!
Jon Hulka
18

Para mí, la instalación simple de certificados ayudó:

sudo apt-get install ca-certificates
Maxim Krušina
fuente
2
Por ejemplo, algunos pequeños contenedores acoplables pueden no tener esto instalado y no tiene sentido solucionar cualquier otra cosa cuando el paquete completo no está presente.
muni764
16

Tuve este problema después de instalar Git Extensions v3.48. Intenté instalar mysysgit nuevamente pero el mismo problema. Al final, tuve que desactivar (¡tenga en cuenta las implicaciones de seguridad!) Verificación Git SSL con:

git config --global http.sslVerify false

pero si tiene un certificado de dominio, agréguelo a (Win7)

C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt
Riga
fuente
23
Funciona, pero tiene ganas de ocultar el síntoma, no curar la enfermedad.
MonoThreaded
44
Deshabilitar la verificación SSL es muy peligroso
jonasl
1
Podría prescindir --globalde tener SSL solo deshabilitado para el repositorio donde tiene problemas. Visite groups.google.com/forum/#!topic/git-for-windows/mlqn5J4OLlw para obtener una discusión sobre los archivos CRT necesarios actuales.
koppor
13

Nos encontramos con este error recientemente. Resulta que estaba relacionado con el certificado raíz que no se instaló correctamente en el directorio de la tienda de CA. Estaba usando un comando curl donde especificaba el directorio CA directamente. curl --cacert /etc/test/server.pem --capath /etc/test ...Este comando fallaba cada vez con curl: (60) Problema con el certificado SSL: no se pudo obtener el certificado del emisor local.

Después de usar strace curl ..., se determinó que curl estaba buscando el archivo raíz cert con un nombre de 60ff2731.0, que se basa en una convección de nomenclatura hash openssl. Así que encontré este comando para importar correctamente el certificado raíz correctamente:

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

que crea un enlace suave

60ff2731.0 -> rootcert.pem

curl, debajo de las cubiertas leyó el certificado server.pem, determinó el nombre del archivo de certificado raíz (rootcert.pem), lo convirtió a su nombre hash, luego realizó una búsqueda del archivo del sistema operativo, pero no pudo encontrarlo.

Entonces, la conclusión es que use strace cuando ejecute curl cuando el error de curl es oscuro (fue una gran ayuda), y luego asegúrese de instalar correctamente el certificado raíz utilizando la convención de nomenclatura openssl.

gp-codificador
fuente
2
Uf, ayudó. Para elaborar un poco lo que me ayudó: a) ejecutar strace curl ... b) buscar stat fallido () con algo-hex.0 c) buscó en Google algo-hex, encontró el certificado correspondiente d) puso el certificado encontrado en / usr / local / share / ca-certificados / (con la extensión * .crt, ya que * .pem no funcionó) e) ejecute los certificados de actualización-ca. Entonces bingo! - el enlace simbólico necesario se creó automáticamente en / usr / lib / ssl / certs /
No-Bugs Hare
11

Es muy probable que falte un certificado del servidor.

Raíz-> Intermedio-> Servidor

Un servidor debe enviar el Servidor e Intermedio como mínimo.

Úselo openssl s_client -showcerts -starttls ftp -crlf -connect abc:21para depurar el problema.

Si solo se devuelve un certificado (ya sea autofirmado o emitido), debe elegir:

  1. arreglar el servidor
  2. confíe en ese certificado y agréguelo a su tienda de certificados de CA (no es la mejor idea)
  3. deshabilitar la confianza, por ejemplo curl -k(muy mala idea)

Si el servidor regresó, más de uno, pero sin incluir un certificado autofirmado (root):

  1. instale el certificado CA (root) en su tienda CA para esta cadena, por ejemplo, google el emisor. ( SOLO si confías en esa CA)
  2. arreglar el servidor para enviar la CA como parte de la cadena
  3. confiar en un cert en la cadena
  4. deshabilitar la confianza

Si el servidor devolvió un certificado de CA raíz, entonces no está en su tienda de CA, sus opciones son:

  1. Añádelo (confía)
  2. deshabilitar la confianza

He ignorado los certificados caducados / revocados porque no había mensajes que lo indicaran. Pero puedes examinar los certificados conopenssl x509 -text

Dado que se está conectando a un servidor ftp de edición doméstica ( https://www.cerberusftp.com/support/help/installing-a-certificate/ ), voy a decir que está autofirmado.

Publique más detalles, como la salida de openssl.

Jason Pyeron
fuente
6

De acuerdo con los documentos de cURL , también puede pasar el certificado al curlcomando:

Obtenga un certificado de CA que pueda verificar el servidor remoto y use la opción adecuada para señalar este certificado de CA para verificación cuando se conecte. Para libcurlhackers:curl_easy_setopt(curl, CURLOPT_CAPATH, capath);

Con la herramienta de línea de comando curl: --cacert [file]


Por ejemplo:

curl --cacert mycertificate.cer -v https://www.stackoverflow.com
Giorgos Myrianthous
fuente
5

Puede ser suficiente simplemente actualizar la lista de certificados

sudo update-ca-certificates -f

update-ca-certificados es un programa que actualiza el directorio / etc / ssl / certs para contener certificados SSL y genera ca-certificados.crt, una lista de certificados de un solo archivo concatenado.

Michael P. Bazos
fuente
lo hizo y todo se hace después de ejecutarlo. Pero el rizo no funciona. Sigue siendo el mismo error.
AGamePlayer
1
Sí ordené, y no ayudó, y no podía creer que tuviera que hacer todo lo anterior. Y luego tu respuesta ... Gracias por la bandera '-f'.
Alex Shtromberg
1
Esta es la solución a la que también llegué. +1
SS Anne
3

Intente reinstalar curl en Ubuntu y actualice mis certificados de CA con los sudo update-ca-certificates --freshque actualicé los certificados

Ankit Singh
fuente
2

En Windows estaba teniendo este problema. Curl fue instalado por mysysgit, por lo que la descarga e instalación de la versión más nueva solucionó mi problema.

De lo contrario, estas son instrucciones decentes sobre cómo actualizar su certificado de CA que podría probar.

Steve
fuente
2

Sí, también debe agregar un certificado de CA. Agregar un fragmento de código en Node.js para una vista clara.

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)
Ravi Prakash
fuente
2

He encontrado este problema también. He leído este hilo y la mayoría de las respuestas son informativas pero demasiado complejas para mí. No tengo experiencia en temas de redes, por lo que esta respuesta es para personas como yo.

En mi caso, este error estaba ocurriendo porque no incluí los certificados intermedios y raíz al lado del certificado que estaba usando en mi aplicación.

Esto es lo que obtuve del proveedor de certificados SSL:

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

En el abc.crtarchivo, solo había un certificado:

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

Si lo suministrara en este formato, el navegador no mostraría ningún error (Firefox) pero recibiría un curl: (60) SSL certificate : unable to get local issuer certificateerror cuando hiciera la solicitud de curl.

Para corregir este error, verifique su abc-bunde.crtarchivo. Lo más probable es que veas algo como esto:

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

Estos son sus certificados intermedios y raíz. Se está produciendo un error porque faltan en el certificado SSL que está proporcionando a su aplicación.

Para corregir el error, combine el contenido de ambos archivos en este formato:

-----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-----

Tenga en cuenta que no hay espacios entre los certificados, al final o al inicio del archivo. Una vez que proporcione este certificado combinado a su aplicación, su problema debería ser solucionado.

Eorekan
fuente
1

Mi caso fue diferente. Estoy alojando un sitio detrás de un firewall. El error fue causado por pfSense.

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

Accidentalmente encontré la causa, gracias a esta respuesta .


Todo está bien cuando accedí a mi sitio desde WAN.

Sin embargo, cuando se accedió al sitio desde dentro de la LAN (por ejemplo, cuando Wordpress realizó una curlsolicitud a su propio servidor, a pesar de usar la IP WAN 49.x.x.x), se le sirvió la página de inicio de sesión de pfSense.

Identifiqué el certificado como pfSense webConfigurator Self-Signed Certificate. No es de extrañar curlarrojó un error.

Causa: Lo que sucedió fue que curlestaba usando la dirección IP WAN del sitio 49.x.x.x. Pero, en el contexto del servidor web, la IP WAN era el firewall.

Depuración: descubrí que estaba obteniendo el certificado pfSense.

Solución: en el servidor que aloja el sitio, apunte su propio nombre de dominio a 127.0.0.1

Al aplicar la solución, curlel servidor web manejó adecuadamente la solicitud y no se envió al firewall que respondió enviando la página de inicio de sesión.

PNDA
fuente
0

Este es un problema del almacén de certificados SSH. Debe descargar el archivo pem de certificado válido del sitio web de CA de destino y luego crear el archivo de enlace flexible para indicar al SSL el certificado confiable.

openssl x509 -hash -noout -in DigiCert_Global_Root_G3.pem

conseguirás dd8e9d41

construir enlace solf con número hash y sufijo el archivo con un .0 (punto cero)

dd8e9d41.0

Vuelva a intentarlo.

Roger
fuente
0
  1. Descargar https://curl.haxx.se/ca/cacert.pem

  2. Después de la descarga, mueva este archivo a su servidor wamp.

    Para exp: D: \ wamp \ bin \ php \

  3. Luego agregue la siguiente línea al archivo php.ini en la parte inferior.

curl.cainfo = "D: \ wamp \ bin \ php \ cacert.pem"

  1. Ahora reinicie su servidor wamp.
Sandeep Kumar
fuente
0

Debe cambiar el certificado del servidor de cert.pema. fullchain.pem
Tuve el mismo problema con Perl HTTPS Daemon:
he cambiado:
SSL_cert_file => '/etc/letsencrypt/live/mydomain/cert.pem'
a:
SSL_cert_file => '/etc/letsencrypt/live/mydomain/fullchain.pem'

k-messaoudi
fuente
-1

Hasta ahora, he visto que este problema ocurre dentro de las redes corporativas debido a dos razones, una o ambas pueden estar sucediendo en su caso:

  1. Debido a la forma en que funcionan los servidores proxy de red , tienen sus propios certificados SSL, lo que altera los certificados que curl ven. Muchas o la mayoría de las redes empresariales lo obligan a usar estos servidores proxy.
  2. Algunos programas antivirus que se ejecutan en las PC cliente también actúan de manera similar a un proxy HTTPS, para que puedan escanear el tráfico de su red. Su programa antivirus puede tener una opción para deshabilitar esta función (suponiendo que sus administradores lo permitan).

Como nota al margen, el número 2 anterior puede hacer que se sienta incómodo con el tráfico TLS supuestamente seguro que se está escaneando. Ese es el mundo corporativo para ti.

rdguam
fuente
-1

Tenía ese problema y no se resolvió con una versión más nueva. / etc / certs tenía el certificado raíz, el navegador dijo que todo está bien. Después de algunas pruebas, recibí de ssllabs.com la advertencia de que mi cadena no estaba completa (de hecho, era la cadena del certificado anterior y no el nuevo). Después de corregir la cadena cert todo estuvo bien, incluso con rizo.

Franco
fuente
-1

Tuve este problema con Digicert de todas las AC. Creé un archivo digicertca.pem que era solo intermedio y raíz pegado en un solo archivo.

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: */*
...

Eorekan tenía la respuesta, pero solo conseguí que yo y otro votara su respuesta.

Kirt Carson
fuente
-2

Específicamente para Windowsusuarios, usando curl-7.57.0-win64-mingwo una versión similar.

Esto es un poco tarde y las respuestas existentes son correctas. Pero aún tuve que esforzarme un poco para que funcionara en mi máquina Windows, aunque el proceso en realidad es bastante sencillo. Entonces, compartiendo el proceso paso a paso.

Básicamente, este error significa que curl no puede verificar el certificado del URI de destino. Si confía en el emisor del certificado (CA), puede agregarlo a la lista de certificados confiables.

Para eso, busque el URI (por ejemplo, en Chrome) y siga los pasos

  1. Haga clic derecho en el icono de candado seguro
  2. Haga clic en el certificado, se abrirá una ventana con los detalles del certificado.
  3. Vaya a la pestaña 'Ruta de certificación'
  4. Haga clic en el certificado ROOT
  5. Haga clic en Ver certificado, se abrirá otra ventana de certificado
  6. Ir a la pestaña Detalles
  7. Haga clic en Copiar a archivo, se abrirá el asistente de exportación.
  8. Haga clic en Siguiente
  9. Seleccione 'Base-64 codificado X.509 (.CER)'
  10. Haga clic en Siguiente
  11. Dé un nombre descriptivo, por ejemplo, 'MyDomainX.cer' (busque el directorio deseado)
  12. Haga clic en Siguiente
  13. Haga clic en Finalizar, guardará el archivo del certificado
  14. Ahora abra este .cerarchivo y copie el contenido (incluyendo ----- BEGIN CERTIFICATE ----- y ----- END CERTIFICATE -----)
  15. Ahora vaya al directorio donde curl.exeestá guardado, por ejemploC:\SomeFolder\curl-7.57.0-win64-mingw\bin
  16. Abra el curl-ca-bundle.crtarchivo con un editor de texto.
  17. Agregue el texto del certificado copiado al final del archivo. Salvar

Ahora su comando debería ejecutarse bien en curl.

Arghya C
fuente
3
Algún comentario sobre el motivo del
voto negativo
No encuentro ningún archivo llamado "curl-ca-bundle.crt" en "C: \ xampp \ apache \ bin" (windows). Supongo que los votos negativos se debieron a esto. Tengo mi "curl.exe" en la carpeta "bin" mencionada anteriormente
kathikeyan A
-4

Esto puede ayudarlo a comer:

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

probado en guzzle / guzzle 3. *

fico7489
fuente
-5

Solución simple: IN ~/.sdkman/etc/config, cambiosdkman_insecure_ssl=true

Pasos:
nano ~/.sdkman/etc/config
cambio sdkman_insecure_ssl=falsepara sdkman_insecure_ssl=true
guardar y salir

biniam
fuente