Aprende a lidiar con el problema del certificado SSL al acceder a una api de rest con unirest en php.

Si recibe este error, el mensaje es muy específico y deberá proporcionar a su distribución PHP un certificado válido mientras intenta acceder a un recurso protegido desde un punto de inicio inseguro.

Este error es común si trabaja localmente en su proyecto, puede leer el siguiente artículo para aprender cómo implementar un certificado SSL válido en Wampp y Xampp para su distribución PHP .

Sin embargo, si tiene prisa y trabaja localmente, simplemente puede deshabilitar la verificación del par en disturbios para ignorar esta advertencia.

Antes de la ejecución de su código principal, establezca la propiedad verifyPeer en falso:

Nota: antes de realizar la prueba, lea la sección "por qué sucede esto" y los riesgos que conlleva.

<?php
// Deshabilita temporalmente la validación del certificado SSL
Unirest\Request::verifyPeer(false); 
// Luego continúa con tu trabajo como de costumbre ...
Unirest\Request::get('https://domainwithhttpsconnection/api/dothis');

Por que sucede esto

libcurl realiza la verificación del certificado SSL de pares de forma predeterminada. Esto se hace utilizando un almacén de certificados CA que la biblioteca SSL puede usar para asegurarse de que el certificado del servidor del par es válido.

Si se comunica con HTTPS , FTPS u otros servidores que utilizan TLS mediante certificados firmados por las CA presentes en la tienda, puede estar seguro de que el servidor remoto es realmente el que dice ser.

Como se mencionó anteriormente, existen 2 soluciones:

  1. Dile a cURL que no verifique al par. Con libcurl desactivas esto con curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);

    Con la herramienta de línea de comando curl, lo desactiva con -k / - inseguro.

  2. Obtenga un certificado de CA que pueda verificar el servidor remoto y utilice la opción adecuada para señalar este certificado de CA para su verificación al conectarse. Para los piratas informáticos libcurl: curl_easy_setopt(curl, CURLOPT_CAPATH, capath);

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

Sin embargo, como estamos usando unirest, la biblioteca tiene el mismo efecto que la primera opción que usa el verifyPeer(false)método.

Debe utilizar la opción 2, ya que es la opción que garantiza que se está conectando a un servidor seguro.


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores