servidor - Twilio PHP-Certificado SSL: certificado autofirmado en la cadena de certificados
instalar certificado ssl servidor local (9)
Agregando esta respuesta porque nadie menciona la [ini-tag]
php.ini
[curl]
curl.cainfo=C:/cacert.pem
cacert.pem se descarga aquí: https://twilio.zendesk.com/attachments/token/EenviU5Rv4KHUzGM6VP5UijB0/?name=cacert.pem
Estoy luchando con este error cuando intento enviar un mensaje a través de Twilio usando su biblioteca PHP :
Fatal error: Uncaught exception Services_Twilio_TinyHttpException with message SSL certificate problem: self signed certificate in certificate chain thrown in F:/path/to/site/twilio-php/Services/Twilio/TinyHttp.php on line 119
Estoy usando wamp en windows 7.
Por supuesto, he encontrado todas las otras publicaciones sobre errores de certificados. Por lo que puedo ver, normalmente actualizar o agregar el archivo cacert.pem
soluciona el problema. Sin embargo, incluso después de hacer esto todavía estoy recibiendo el mismo error.
Justo como una prueba de cordura aquí es exactamente lo que he hecho:
- Descargue los últimos certificados desde aquí: http://curl.haxx.se/ca/cacert.pem .
- Ubicó este archivo en la siguiente ubicación
c:/wamp/certs/cacert.pem
-
curl.cainfo = c:/wamp/certs/cacert.pem
php.ini de la siguiente manera:curl.cainfo = c:/wamp/certs/cacert.pem
- Reiniciado todos los servicios de wamp incluyendo apache
Y todavía estoy recibiendo el mismo error. He verificado que estoy editando el phpinfo()
php.ini correcto usando phpinfo()
. Estoy en una pérdida de por qué todavía se queja.
¿Hay alguna forma de verificar al 100% que mi archivo cacert.pem
se encuentra y se lee? He comprobado phpinfo()
y no hay ninguna mención de ello allí. ¿Debería decir en algún lugar qué, si es que algún cacert.pem
está usando?
¡Gracias!
Aquí está la respuesta oficial de Twilio:
Para intentar solucionar este problema, intenta hacer lo siguiente:
1 Descargue el siguiente archivo pem: https://twilio.zendesk.com/attachments/token/EenviU5Rv4KHUzGM6VP5UijB0/?name=cacert.pem
2 Copie este archivo en c:/cert/cacert.pem
(Windows) o en cualquier otra ruta en su instalación de Unix / Linux / Mac
3 Abra el archivo php.ini en su editor favorito
Si existe la siguiente string: curl.cainfo
configuración string: curl.cainfo
en su php.ini, elimine el comentario " ;
" y modifique la ruta para apuntarla al archivo cacert.pem adjunto a este correo electrónico, por ejemplo:
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
curl.cainfo=c:/cert/cacert.pem
5 Reinicie su servicio de Apache para aplicar el cambio (¡muy importante!)
Editar TinyHttp.php
y agregue CURLOPT_SSL_VERIFYPEER => FALSE,
en $ opts array
En lugar de hackear tiny_http.php, puedes agregar tus propias opciones de cURL llamando al constructor CurlClient de Twilio con tus opciones elegidas, como:
$client = new /Twilio/Rest/Client($accountSid, $authToken);
$curlOptions = [ CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false];
$client->setHttpClient(new CurlClient($curlOptions));
try {
$call = $client->calls->create($from_phone, $phone_number, $callback_url);
print ''Call queued with Twilio'';
} catch (/Exception $ex) {
print ''Twilio error: '' . $ex->getMessage();
}
En mi caso, el cacert.pem del enlace de descarga anterior no funcionó para mí, pero el cacert.pem del paquete de la biblioteca de twilio php anterior como 3.12.5 funcionó. Modifiqué twilio.php en un paquete más nuevo para agregar las siguientes dos líneas
CURLOPT_CAINFO => dirname(FILE) . ''/cacert.pem''
''cafile'' => dirname(FILE) . ''/cacert.pem''
a la ubicación correspondiente como paquete anterior y también copió cacert.pem a un paquete más nuevo.
No estoy usando Twilio, pero estoy en Windows y estaba teniendo los problemas exactos descritos en el OP. ca-bundle.crt
esto descargando el archivo ca-bundle.crt
de esta página y apuntándolo con mi php.ini: http://curl.haxx.se/docs/caextract.html
Para mí, ninguna de las respuestas publicadas aquí funcionó.
Pero luego actualicé mi PHP a 7.0.1 * y ya no tuve este error: Services_Twilio_TinyHttpException: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL
Services_Twilio_TinyHttpException: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL
.
* ( C:/wamp/bin/php/php-7.0.1-Win32-VC14-x64
lugar de C:/wamp/bin/php/php5.4.3
)
Y mi C:/wamp/bin/php/php-7.0.1-Win32-VC14-x64/php.ini
ya había incluido curl.cainfo=C:/wamp/cacert.pem
.
Tengo el mismo problema, pero he estado investigando el artículo, tal vez te ayude. http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/
Mira en tu versión cURL. debes estar en 7.4x
Yo tuve exactamente el mismo problema
Sigue estos pasos:
Descarga el siguiente archivo - http://curl.haxx.se/ca/cacert.pem
Luego descargue el siguiente archivo: thawte_Premium_Server_CA.pem
Abra el segundo archivo en un editor de texto y copie su contenido en el primer archivo ( cacert.pem
en la parte inferior / final).
Guarde cacert.pem
y agregue las siguientes líneas a su php.ini
:
[curl]
curl.cainfo=c:/xampp/php/cacert.pem
Obviamente, cambie el directorio al directorio donde se encuentra su pem. Reinicie el servidor local de php (xampp / wamp). Entonces funcionará perfectamente.
Gracias.