httpd-idk - https form geeft 'Page can not be found' in IE

De laatste weken schakel ik de websites systematisch over naar https. Zo ook verleden week voor een website met formulier waar je foto's kan uploaden.
Alles gaat goed zolang je maar geen Internet Explorer gebruikt. Eerst had ik het niet opgemerkt, want een test gaf een positief resultaat. Later zou blijken dat dit was omdat ik het ganse formulier had ingevuld en zo de Apaches KeepAliveTimeout had overbrugt.

Het probleem doet hem voor wanneer je de pagina inlaad en vrij snel een upload doet. De pagina antwoord dan met "Deze pagina kan niet gevonden worden" (dnserror.html).
Eerst dacht ik dat het te maken had met het feit dat de upload gebeurd in een ge-framede pagina. Zo kwam ik op deze pagina: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
Maar dit gaf hetzelfde resultaat.

Na het testen van het uploadformulier, zonder gebruik te maken van een frame, en veel serverside scripting aan te passen ben ik het gestopt. Morgen is een nieuwe dag.

Een andere invalshoek: Het enige die veranderd was is het SSL gebeuren en de https VirtualHost (op een Apache 2.4.6 configuratie).
Zo viel ik op deze pagina: KeepAlive in Apache 2.4 interfering with form submissions deze omschrijft exact hetzelfde probleem:

Now, SSL sites won't submit forms in some circumstances on IE11 and iPad Safari (not sure about desktop Safari).
Firefox and Chrome are both OK. When it fails it produces a IE error page "This page can’t be displayed" in IE.
Just to stress: I can get to the site and see the form, it's the form submission that then fails.

En er is ook een antwoord te vinden op deze pagina. Dit zou veroorzaakt zijn door een bug in mpm-itk (cf. http://lists.err.no/pipermail/mpm-itk/2015-September/thread.html)

This bug is now corrected in the latest version released yesterday.


De http-itk die op de server staat is geïnstalleerd via 'yum install httpd-itk'. De CentOS 7 repos zijn uitgebreid met deze van epel (fedora). Maar blijkt dat de timestamp van deze op mijn server 6 maart 2015 is. De referentie in de quote spreekt over 9 september 2015. Dus mijn versie heeft nog deze bug.

De epel is dus niet up-to-date, de oplossing is simpel, zelf de module compileren.
Download de nieuwste versie van http://mpm-itk.sesse.net/ en compileer.

Download de tar, configure, make en make install, pas apache config aan en herstart.

cd /tmp
wget http://mpm-itk.sesse.net/mpm-itk-2.4.7-04.tar.gz
cd /tmp/mpm-itk-2.4.7-04/

yum install gcc httpd-devel
./configure
make
make install

output:
/bin/apxs -i mpm_itk.la
/usr/lib64/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' mpm_itk.la /usr/lib64/httpd/modules
/usr/lib64/apr-1/build/libtool --mode=install install mpm_itk.la /usr/lib64/httpd/modules/
libtool: install: install .libs/mpm_itk.so /usr/lib64/httpd/modules/mpm_itk.so
libtool: install: install .libs/mpm_itk.lai /usr/lib64/httpd/modules/mpm_itk.la
libtool: install: install .libs/mpm_itk.a /usr/lib64/httpd/modules/mpm_itk.a
libtool: install: chmod 644 /usr/lib64/httpd/modules/mpm_itk.a
libtool: install: ranlib /usr/lib64/httpd/modules/mpm_itk.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /usr/lib64/httpd/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/lib64/httpd/modules


Apache heeft normaal een symbolic link naar die directory
Het eninge wat we nu nog moeten nakijken is of de mpm_itk.so wordt gerefereerd in de configuratie

vi /etc/httpd/conf.modules.d/00-mpm-itk.conf
	--> LoadModule mpm_itk_module modules/mpm_itk.so

Na het herstarten van de apache service kon ik terug ongeacht de wachttijd bestanden uploaden.

Terug naar overzicht nieuws