G3W3 - Kolla => Proxy Reverso

Hola, buenos días. Tenemos un servidor de prueba que es una copia del que tenemos en producción, que esta atrás de un proxy reverso con certificado SSL que redirige al purto 80 de la virutal. Tanto Guaraní como Kolla estan en la misma virtual.

El problema es cuando trata de realizar las encuestas por G3W tira el siguiente error:

================================================================================
================================= ERRORES ==================================

clase: Exception
mensaje: No se puede responder la encuesta, ya que los protocolos que usan Guaraní y Kolla son incompatibles (uno usa HTTP y el otro HTTPS).
traza: [TRAZA]

– kolla_url -----------------------------------------------------------------

23, 40317, 4a1967af22ccad23cf8e3e765760920bcf81e0a8, 7fc12db9cfe46238d145c00de9767a45

– url_encuesta --------------------------------------------------------------

https://g3salud.unlpam.edu.ar/kolla/?ai=kolla||40000112&tm=1&h=23&t=MR9tksAhAM6KZJhSx2J3HYJq%2BpRN36JemkHbNxbLDrs7eeKkUrjSoRnXJR0Io9LmD8HozA9NfiM3pC3ZTUxQqvIXbqtPQejtmV4H0qj7Gy4%3D

– === protocolo_guarani === -------------------------------------------------

http

– === protocolo_kolla === ---------------------------------------------------

https

Se encontró la solución en Conexion guarani 3w - kolla - nº 8 por lleonardis

Hola @fsanztroiani

Lo extraño es que por lo que veo acá ambos g3w3 y Kolla usan https.

¿tenes la versión de 3.19.1 de Guaraní?

Asegúrate de tener HTTP_X_FORWARDED_PROTO en la función isHTTPS de vendor/siu/chulupi-framework/src/SIU/Chulupi/util/u.php:

	/**
	 * Verifica si el protocolo es HTTPS (tiene en cuenta si usa proxy reverso).
	 * @see https://foro.comunidad.siu.edu.ar/index.php?topic=24404
	 * @see https://www.designcise.com/web/tutorial/how-to-check-for-https-request-in-php
	 * @return boolean TRUE si el protocolo es HTTPS, FALSE en caso contrario (HTTP).
	 */
	static function isHTTPS()
	{
		$isHttps =
			(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on')
			|| (isset($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] === 'https')
			|| (isset($_SERVER['SERVER_PORT']) && (int) $_SERVER['SERVER_PORT'] === 443)
			|| (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
		;
		return $isHttps;
	}

Saludos.
2