Recentemente, axustando a configuración dun WordPress que instalamos nos servidores dun cliente apareceunos un problema bastante singular.

Nos nosos servidores o sitio web funcionaba correctamente sobre https e aparentemente replicamos a configuración do cliente. O cliente recibe as peticións nun proxy reverse que envía ao servidor coa aplicación en http.

O problema era que no servidor do cliente non se cargaban os estilos, nin os js nin as fontes porque o navegador tentaba cargalos por http en lugar de https, considerábaos inseguros e polo tanto bloqueábaos. Ademais, tampouco podiamos acceder á zona de administración de WordPress porque o navegador mostraba o seguinte erro (ERR_TOO_MANY_REDIRECTS) .

A configuración no noso wp_config.php era a seguinte:

As últimas liñas corresponden á forma recomendada de manexar esta configuración en WP, como se pode ver aquí: https://codex.wordpress.org/Function_Reference/is_ssl .

O servidor apache, que recibía as peticións externas, estaba configurado da seguinte forma (incluímos só as instrucións relevantes) e enviábaas ao servidor no que estaba instalada a aplicación por http:

Como se pode ver, inclúese a instrución que en teoría debería enviar a indicación do https RequestHeader set X_FORWARDED_PROTO ‘https’.

Tras investigar na rede (http://www.jpereira.net/gestion-documental/wordpress-mod-proxy-ssl , https://snippets.webaware.com.au/snippets/wordpress-is_ssl-doesnt-work-behind-some-loade-balancers/ ), a nosa conclusión é que nesa viaxe entre servidores pérdese a variable ou non se chega a enviar. Por este motivo, o servidor coa aplicación non pode saber que estamos sobre https. Temos que indicar que a nós non nos funcionou ningunha das solucións anteriores e tivemos que forzar directamente a variable que indica estar sobre https poñéndoa directamente no wp_config desta forma:

$_SERVER[‘HTTPS’]=’on’;

A partir deste momento o sitio web funciona correctamente, poida que non sexa a solución ideal, pero despois dunha semana pelexándonos con este problema é a única que atopamos.

Agardamos que este artigo vos axude se vos encontrades co mesmo problema.