Conexion API REST con Kolla

Buenas tardes,

Estamos con un problema en la interfce de Guarani con Kolla, está todo configurado se puede acceder por web a ambas APIs, todo está en basic, el servicio web está configurado en Kolla pero cuado queremos vincular el formulario con Kolla nos sale el error “Debe configurar el acceso al servicio web de SIU-Kolla para obtener los formularios disponibles”.
Adjunto la informacion del log:

[Fri Aug 04 13:32:06.764803 2023] [php7:notice] [pid 392296] [client 192.168.0.233:46928] cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html), referer: https://siu.ifes.edu.ar/guarani/aplicacion.php?ah=st64cd27f55617a8.45480120&ai=guarani||2
[Fri Aug 04 13:32:06.769459 2023] [php7:notice] [pid 392296] [client 192.168.0.233:46928] guarani_error: Debe configurar el acceso al servicio web de SIU-Kolla para obtener los formularios disponibles. \n[TRAZA]\n\t\n\tfabrica_guarani::error \nArchivo: /usr/local/proyectos/guarani/php/nucleo/_lib/fabrica_guarani.php, lInea 82 \n\t\n\tguarani_nucleo::error \nArchivo: /usr/local/proyectos/guarani/php/operaciones/encuestas/vincular_encuestas/ci_nav_vincular_encuestas.php, lInea 14 \n\t\n\tci_nav_vincular_encuestas->ini__operacion \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/componentes/interface/toba_ci.php, lInea 90 \n\t\n\ttoba_ci->inicializar \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 133 \n\t\n\ttoba_solicitud_web->procesar_eventos \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 55 \n\t\n\ttoba_solicitud_web->procesar \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php, lInea 96 \n\t\n\ttoba_nucleo->acceso_web \nArchivo: /usr/lo…SIGUE…,

No sé si ese error de CURL está impidiendo el acceso a la API.

Saludos,
Pablo

Buenos días Pablo, desde guaraní podes ver la UG de kolla?

Controlaste que todo lo que está definido en la configuración esté ok
https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.21.0/interfaces/kolla

a mi me pasó en particular que como tengo ambos ambientes dockerizados no se estaban viendo (me salía el mismo error) y lo solucioné
ingresando en el /etc/hosts de guaraní → las IP privadas de kolla

y agregando un archivo web_server.ini en la ruta [carpeta gestion]/instalación/

con el siguiente contenido:

[server_config]
https =“on”

saludod!

Hola!

La instalacion no está en Docker y ambas aplicaciones en un mismo server y se ven sin problemas. El archivo web_server.ini tiene el https en ON.

Saudos y gracias.

Pablo

Hola, agrego a lo de Luciana:

Te esta dando el siguiente error:

cURL error 60: SSL certificate problem: unable to get local issuer certificate

Si lo buscas en el foro dicho error vas a ver varias respuestas, te paso algunas:

Lo ideal seria resolver el problema de los certificados, pero pasa salir del paso podes hacer que no se validen:

Autogestión:
En el archivo instalacion/servicios_web_config.php configurar ‘verify’ => false para Kolla, ej:


       'kolla' => [
            'tipo' => 'rest',
            'parametros' => [
                'base_uri' => 'http://<URL-KOLLA>/rest/',
                'auth' => ['ue_guarani', '123456789*-a', 'basic'],
                'verify' => false,
            ]
        ],

En Gestión:

En el archivo vendor/siu-toba/framework/php/nucleo/lib/toba_servicio_web_cliente_rest.php pones private $toba_verify_peer = false;, también se puede hacer seteando la variable de entorno TOBA_REST_VERIFY_PEER en 0.

saludos.
2

Leonel,

Probé lo que me recomendaste pero aún sigo con el error para vincular los formularios. También hice lo que recomienda CURL de bajar el cacert.pem y confgiurarlo en curl.cainfo y todo sigue igual.

Saludos,
Pablo

Hola Pablo,

¿que error te da ahora?

Ya no debería dar mas el error cURL error 60: SSL certificate problem: unable to get local issuer certificate con lo de la Respuesta #3.

saludos.
2

El mismo error Leonel, como si siguiera verificando el certificado a pesar de tener el parámetro en false.

Hola Pablo,

¿el error lo da en Gestión, no? ¿en Autogestión funciona bien?

¿tendrás la variable de entorno TOBA_REST_VERIFY_PEER cargada con algún valor? Podes probar ejecutando lo siguiente:


echo $TOBA_REST_VERIFY_PEER

printenv TOBA_REST_VERIFY_PEER

¿en instalacion/i__desarrollo/p__guarani/rest/kolla/cliente.ini configuraste la directiva ca_cert?

Una opción mas radical es modificar la función guzzle de vendor/siu-toba/framework/php/nucleo/lib/toba_servicio_web_cliente_rest.php y reemplazar:


//Agrego el certificado de la CA para verificar el certificado del servidor
$options['verify'] = (isset($this->opciones['ca_cert']))? array($this->opciones['ca_cert']) : $this->toba_verify_peer;

por:


//Agrego el certificado de la CA para verificar el certificado del servidor
$options['verify'] = false;

saludos.
2

Por ahora solo da error en Gestion, la salida de las variables es esta:

root@siu:/home/adminsiu# echo $TOBA_REST_VERIFY_PEER
0
root@siu:/home/adminsiu# printenv TOBA_REST_VERIFY_PEER
0
root@siu:/home/adminsiu#
No está configurada la directiva de CA en cliente.ini

Se cambió la verificacion a false en toba_servicio_web_cliente_rest.php y todo sigue con el mismo erorr de Curl.

Saludos,
Pablo

Hola Pablo, gracias por la información!!!

Ya se lo que debe estar pasando:

En la función ini__operacion de php/operaciones/encuestas/vincular_encuestas/ci_nav_vincular_encuestas.php se llama a conexion_kolla_ok de php/nucleo/encuestas/encuesta_nucleo.php, en la misma se pasa un array() vacío en las opciones:

$response = static::get_cliente_rest()->get('unidad-gestion', array());

Esto hace que llegue vacía la opción verify y tome el valor por defecto (‘verify’ => true).

Proba quitando ese array vacío, que quede así:

$response = static::get_cliente_rest()->get('unidad-gestion');

Si con lo anterior no funciona, algo mas invasivo seria editar la función configureDefaults de vendor/guzzlehttp/guzzle/src/Client.php y poner ‘verify’ => false,, ej:


    private function configureDefaults(array $config)
    {
        $defaults = [
            'allow_redirects' => RedirectMiddleware::$defaultSettings,
            'http_errors'     => true,
            'decode_content'  => true,
            'verify'          => false,
            'cookies'         => false,
            'idn_conversion'  => true,
        ];

saludos.
2

Hola Leonel,

Funcionó con la segunda opción, mientras puedo ver como solucionar el tema de curl.

Muchas gracias.

Pablo