SSL certificate problem en 3.21.0 integrado

Hola,

Instalamos 3.21 con boleto estudiantil. Si el beneficio ya estaba pedido de antes, trae los datos sin ningún problema.

Si pedimos el beneficio, aceptando las condiciones y tocando el botón grande, aparece error ““Ocurrió un error. Vuelva a intentarlo mas tarde o bien comuníquese con la mesa de ayuda””

Vemos el log y dice:

clase: GuzzleHttp\Exception\RequestException
mensaje: ERROR: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
traza: [TRAZA]

Vi algunas soluciones que había para versiones anteriores, pero en ubicaciones y archivos de la personalización, no en sus nuevas ubicaciones, que no sé cuales son.

Gracias por cualquier ayuda,

View Issue

Hola Fernando,

¿esta usando la URL de pruebas http://test.boletoestudiantil.gba.gob.ar/ws/ ?

En tal caso en el archivo instalacion/servicios_web_config.php agregar ‘verify’ => false,, ej:


        'boleto_estudiantil' => [
            'tipo' => 'rest',
            'parametros' => [
                'base_uri' => "http://test.boletoestudiantil.gba.gob.ar/ws/",
                'auth' => ["<USUARIO>", "<PASSWORD>", "<TIPO-AUTH>"],
                'auth_ua' => "<STUDENT-DEPARTMENT>"
                'verify' => false,
            ]
        ],

Te dejo la documentación: https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.21.0/interfaces/boleto-estudiantil

saludos.
2

Hola Leonel,

Estamos usando la de producción

https://boletoeducativo.gba.gob.ar/ws/

La configuración fue basada en esa wiki…

con tipo-auth basic (solo porque estaba primero; el link de Guzzle no me dejó nada claro para un lado o para el otro)

Hola Fernando,

Si mal no recuerdo antes no daba ese error de certificados, seguramente se les vencieron, vas a tener que agregar la opción ‘verify’ => false para que no te de dicho error, ej:

instalacion/servicios_web_config.php

       
        'boleto_estudiantil' => [
            'tipo' => 'rest',
            'parametros' => [
                'base_uri' => "https://boletoeducativo.gba.gob.ar/ws/",
                'auth' => ['XXX', 'YYY', 'basic'],
                'auth_ua' => 'ZZZ',
                'verify' => false,
            ]
        ],

Igualmente hice una pequeña prueba y me da el siguiente mensajes: POST benefit-request | status: 403 | message: El sistema de inscripciones al Boleto Educativo se encuentra deshabilitado debido al cierre del ciclo lectivo. Disculpe las molestias!. Con la URL de test funciona bien (http://test.boletoestudiantil.gba.gob.ar/ws/).

¿es para producción o están haciendo pruebas?

saludos.
2

Hola Leonel,

En tal caso en el archivo instalacion/servicios_web_config.php agregar 'verify' => false,, ej:

Con eso dio mensaje verde de éxito.

¿es para producción o están haciendo pruebas?

Producción. La personalización de la 3.20.0 se había perdido al instalar la 3.20.2, pero como no era principio de año (segunda mitad del 2022), no había problema (ni nos habíamos dado cuenta, tampoco, que se había perdido).
Llegó el 2023 y como habíamos leído que en 3.21 pasaba a ser parte del core, esperamos a la nueva versión para ponerlo en funcionamiento otra vez.

¡Todo en orden ahora! ¡Muchas Gracias!

Ahora el mismo error aparece en Gestión cuando corro el comando

./guarani notif_solicitudes_sube

la configuración esta en :

instalacion/i__desarrollo/p__guarani/rest/sube/cliente.ini

pero el verify = false no funcionó ahí…

Hola Fernando, proba una de estas dos opciones:

  1. En la función actualizar_beneficio de php/extension_toba/guarani_ws_boleto.php agrega $parametros[‘verify’] = false;, quedaría algo así:

	/*
	 * Con todos los parametros se actualiza el beneficio
	 */
	public static function actualizar_beneficio($updates)
	{		
		$parametros = static::get_parametros_novedad($updates);
                $parametros['verify'] = false;
		try {
			$response = static::get_cliente_rest()->post('benefit-update', $parametros);
			//Valida el status de la respuesta.			
			return static::validar_response($response, 200, __FUNCTION__);
		} catch (\GuzzleHttp\Exception\ClientException $e) {
			echo $e->getMessage();
			return null;
		} catch (Exception $e) {
			echo $e->getMessage();			
			return null;
		}
	}

Si con eso no funciona en vendor/siu-toba/framework/php/nucleo/lib/toba_servicio_web_cliente_rest.php pone private $toba_verify_peer = false;. Este ultimo se pierde si eliminas la carpeta vendor y volves a ejecutar composer install. También deja de verificar los certificados SSL para todos los Web Services (Kolla, SQ, Tehuelche, etc)

saludos.
2

Esto funcionó perfecto hasta acá. El resto ya cambia de título. Genero mensajes nuevos.

Gracias !!

Hola @fvelarde

Hay otra universidad con el siguiente error:

{"status":403,"Query":"SELECT ee.establecimiento_educativo_id, ee.id_publico, eeu.password_ws FROM
Establecimiento_Educativo ee inner join Establecimiento_Educativo_Usuario eeu on ee.establecimiento_educativo_id =
eeu.establecimiento_educativo_id WHERE eeu.usuario_ws=:usuariows AND eeu.fecha_baja IS NULL","message":"El sistema de
inscripciones al Boleto Educativo se encuentra deshabilitado debido al cierre del ciclo lectivo. Disculpe las
molestias!"}

¿ustedes como lo solucionaron?

¿ Tuvieron que contactarse con el Ministerio de Infraestructura y Servicios Públicos de la Provincia de Buenos Aires contactouniversidades@transporte.gba.gob.ar?

Esto me llamo la atención: Boleto Estudiantil | Provincia de Buenos Aires

El sistema de inscripciones al Boleto Educativo se encuentra deshabilitado debido al cierre del ciclo lectivo. Disculpe las molestias!

Desde ya muchas gracias.

Hola Leonardo,

Ese mensaje 403 te había dado a vos en tus pruebas.
Nosotros teníamos problemas con el certificado SSL, que solucionamos como se explica acá…, pero no nos daba ese mensaje de “deshabilitado por cierre de período lectivo”.

Gracias @fvelarde

Con las credenciales del SIU también me esta devolviendo lo siguiente:

{"status":403,"Query":"SELECT ee.establecimiento_educativo_id, ee.id_publico, eeu.password_ws FROM Establecimiento_Educativo ee inner join Establecimiento_Educativo_Usuario eeu on ee.establecimiento_educativo_id = eeu.establecimiento_educativo_id WHERE eeu.usuario_ws=:usuariows AND eeu.fecha_baja IS NULL","message":"El sistema de inscripciones al Boleto Educativo se encuentra deshabilitado debido al cierre del ciclo lectivo. Disculpe las molestias!"}

¿me podrías corroborar si con sus credenciales también les devuelve lo mismo? Pueden probar haciendo un curl:

Test:

curl -k -X POST -vvv "https://test.boletoestudiantil.gba.gob.ar/ws/benefit-request" \
  -u "<USUARIO>:<PASSWORD>" \
  -F "user=<USUARIO>" \
  -F "password=<PASSWORD>" \
  -F "student_id=35072801" \
  -F "student_id_type=0" \
  -F "student_name=Jose" \
  -F "student_last_name=Pérez" \
  -F "student_department=<STUDENT-DEPARTMENT>"

Producción:

curl -k -X POST -vvv "https://boletoeducativo.gba.gob.ar/ws/benefit-request" \
  -u "<USUARIO>:<PASSWORD>" \
  -F "user=<USUARIO>" \
  -F "password=<PASSWORD>" \
  -F "student_id=35072801" \
  -F "student_id_type=0" \
  -F "student_name=Jose" \
  -F "student_last_name=Pérez" \
  -F "student_department=<STUDENT-DEPARTMENT>"

Saludos.

Hola Leonardo,

En Producción no. (funciona bien) En Testing sí (error 403, ciclo lectivo)

Gracias por la información @fvelarde

A nosotros en producción nos devuelve 403 Forbidden:

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.10.3</center>
</body>
</html>

Me hace ruido esta URL sobre el estado del mismo: Boleto Estudiantil | Provincia de Buenos Aires. Voy a enviar un email a mesageneraldeentrada@transporte.gba.gob.ar

Saludos.

Desde Contacto Universidades me dicen:

Por el momento como estamos realizando unas modificaciones, les pedimos que si necesitan trabajar en ambiente de test utilicen las mismas credenciales que tienen en ambiente productivo.

Hola, retomo el tema:

Test me devuelve lo siguiente:

curl -k -X POST -vvv "https://test.boletoestudiantil.gba.gob.ar/ws/benefit-request" \
  -u "<USUARIO>:<PASSWORD>" \
  -F "user=<USUARIO>" \
  -F "password=<PASSWORD>" \
  -F "student_id=35072801" \
  -F "student_id_type=0" \
  -F "student_name=Jose" \
  -F "student_last_name=Pérez" \
  -F "student_department=<STUDENT-DEPARTMENT>"

Status Code: 200 OK

{"status":403,"message":"El sistema de inscripciones al Boleto Educativo se encuentra deshabilitado debido al cierre del ciclo lectivo. Disculpe las molestias!"}

Producción:

curl -k -X POST -vvv "https://boletoeducativo.gba.gob.ar/ws/benefit-request" \
  -u "<USUARIO>:<PASSWORD>" \
  -F "user=<USUARIO>" \
  -F "password=<PASSWORD>" \
  -F "student_id=35072801" \
  -F "student_id_type=0" \
  -F "student_name=Jose" \
  -F "student_last_name=Pérez" \
  -F "student_department=<STUDENT-DEPARTMENT>"

Status Code: 403 Forbidden

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.10.3</center>
</body>
</html>

Desde contactouniversidades@transporte.gba.gob.ar ya no recibí mas respuesta.

¿a ustedes les funciona bien?

Saludos.

Buenas noches Leonel, cómo estas? quería saber si pudiste solucionar el problema del mensaje en test ya que a mi me esa tirando el mismo error, pero yo solo tengo datos y credenciales del test por lo que me pasaron. Por ahi pudiste solucionarlo. Estuve leyendo y pareciera que no es problema de mi configuración sino del ministerios. Desde ya te agradezco.

Saludos

Hola @Matias_Bellani

Me sigue dando 403 Forbidden.
URL test https://test.boletoestudiantil.gba.gob.ar/ws/benefit-request

{"status":403,"message":"Authentication credentials provided were invalid"}

URL producción https://boletoeducativo.gba.gob.ar/ws/benefit-request

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.10.3</center>
</body>
</html>

En este portal dice lo siguiente:

El sistema de inscripciones al Boleto Educativo se encuentra deshabilitado debido al cierre del ciclo lectivo. Disculpe las molestias!

Pónganse en contacto con contactouniversidades@transporte.gba.gob.ar

Saludos.

Buenos días Leonel, desde ya muchas gracias por tu respuesta. Quedaremos a la espera de la respuesta de mail desde el ministerio. Saludos

Perfecto @Matias_Bellani

Si te responden, por favor contanos en este foro que pasos seguir para que habiliten el servicio, quizás hay que pasarles la IP del servidor de Guaraní para que la agreguen en algún tipo de “lista blanca” o algo por el estilo.

Te dejo como probar los Web Services:

curl -k -X POST -vvv "<URL>" \
  -u "<USUARIO>:<CONTRASEÑA>" \
  -F "user=<USUARIO>" \
  -F "password=<CONTRASEÑA>" \
  -F "student_id=<NRO-DNI>" \
  -F "student_id_type=0" \
  -F "student_name=<NOMBRE BENEFICIARIO>" \
  -F "student_last_name=<APELLIDO BENEFICIARIO>" \
  -F "student_department=<UNIDAD-GESTION>"

<URL> seria https://test.boletoestudiantil.gba.gob.ar/ws/benefit-request para testing y https://boletoeducativo.gba.gob.ar/ws/benefit-request para producción.

Saludos.

Buenos días Leonel, espero que te encuentres bien. Te comento que recibimos respuesta del ministerio y nos solucionaron el problema, era de ellos el inconveniente. Ahora tirando el curl el servidor responde y establece conexión con ellos con resultado satisfactorio.

El nuevo problema que nos surge es que al momento de hacer el inicio del tramite en el test de guarani como si fuese un estudiante, nos tira “Error con en solicitud sube, inténtelo más tarde” , asique me volví a comunicar para que me puedan guiar del porque del error.

Saludos