Urielmania

“El Mundo de Uriel… Pero la voz de todos”

SSL operation failed error Gmail with Codeigniter and XAMPP

Tengo que comenzar diciendo que casi ya no desarrollo, pero pues una que otra vez lo hago, por lo cual tal vez este puede ser un problema realmente fácil de solucionar pero yo me encontre con 6 horas de mi vida gastados para entender qué pasaba, igual tengo que decir que en la mayoría de veces cuando estoy haciendo algún desarrollo que tiene que ver con certificados ssl , peticiones curl o en general cualquier petición externa siempre los hago en un servidor de pruebas online previamente configurado por un tercero, si bien  casi nunca lo hago en localhost o servidor xampp , ya que para ser sinceros eso quita mucho tiempo de configuración, así que yo recomendaría que si estas probando o realizando algo por el estilo optes por lo mismo, y si bien tener un servidor de pruebas online puede parecer un gasto inecesario o en el peor de los casos muy caro,  la verdad es que no es asi, es mas creo que se sorprenderán al ver algunos precios de servidores que hay en el mercado, si quieren conocer algunos precios les recomiendo el servicio de www.ingeniaoaxaca.com , esos chavos si saben… XD

Pero bueno por X o Y motivo hay veces que tenemos que hacer estos desarrollos en una computadora propia o del cliente por lo cual hay que poder solucionar problemas con xampp y uno con el que me tope fue el envío de emails desde localhost, lo cierto es que podríamos hacerlo montando nuestro propio servidor de correos pero si ya tenemos gmail para que hacerlo, por lo cual utilice la librería email de codeigniter, que por un rato me funciono muy bien pero de la nada dejo de funcionar y me empezo a salir un mensaje muy parecido a este:

Error message 1: Message: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

la primera vez despues de mil horas de revisar configuraciones y cosas del código  que era así :

$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.gmail.com',
'smtp_port' => 465,
'smtp_user' => '[email protected]',
'smtp_pass' => 'asd',
'mailtype' => 'html',
'charset' => 'utf-8'
);
$this->load->library('email', $config);

el error no estaba en mi configuración o servidor xampp, simplemente era una broma de mi antivirus , en este caso avast que estaba bloqueando mi puerto y solo tuve quitar el puerto en la sección  Redirect Settings‘s MAIL que se encuentra en Settings/ Troubleshooting / Redirect Settings.

Y pues la segunda vez que paso, dije pues seguro que es el antivirus y o sorpresa a darme cuenta que esa computadora en general no tenía activado un antivirus y despues de otras mil horas de configuracion esta vez de puertos dentro de la maquina que tenia el servidor y de cambios de puertos y código , me di cuenta que el problema no era ninguno de esos dos, mas bien era problema de xampp y su certificados ssl chafas ya que si bien xampp y por lo que leo wamp tienen un certificado válido pero no está activado, no se por que hacen eso pero asi es…

En este caso, para Xampp v5.6.23 (PHP 5.6.23) el archivo existe y se encuentra localizado en la carpeta perl, asi ya que lo encontramos lo único que hay que hacer es abrir el archivo php.ini y decirle que utilice el certificado valido, en este caso lo hacemos buscando la palabra openssl.cafile, descomentar la misma y agregar la direccion del archivo en este caso quedaria algo asi ;

openssl.cafile= C:\xampp\perl\vendor\lib\Mozilla\CA\cacert.pem

bueno aqui puse la direccion del certificado de xampp instalado normalmente y que esta en C: pero pues ustedes ponen la dirección correcta y listo ya tenemos certificado ssl validado o algo asi… Y para los que utilizan curl tendrían que copiar esta otra linea de código:

curl.cainfo ="C:\xampp\perl\vendor\lib\Mozilla\CA\cacert.pem"

Finalmente solo nos faltaria reiniciar apache y cualquier otro servicio como por ejemplo mysql e intenta hacer lo que sea que estaban haciendo una vez más y esta vez todo debería funcionar correctamente sin ningun error.

Acerca del Autor