Detectando peticiones HTTPS con PHP en AWS
Si alguien se encuentra en un caso como este al estar usando el balanceador de carga y los servicios web de Amazon, la solución es simple.
Dado que $_SERVER no existe, debería utilizarse:
[HTTP_X_FORWARDED_PORT] => 443
[HTTP_X_FORWARDED_PROTO] => https
Haciendo uso de la siguiente función:
function getProtocol() {
if(!empty($_SERVER['HTTP_X_FORWARDED_PROTO']))
return $_SERVER['HTTP_X_FORWARDED_PROTO'];
else
return !empty($_SERVER['HTTPS']) ? "https" : "https";
}