Alle HTTP verkeer doorsturen naar HTTPS

Tegenwoordig wilt iedereen https draaien, zo ook mijn werk. Ik moet daarom ook regelmatig nieuwe vhosts toevoegen die alleen op HTTPS mogen draaien. Dit is voor zowel NGINX als Apache2 heel gemakkelijk toe.

Apache configuratie

Voor Apache2 moet je zorgen dat je mod_rewrite aan hebt staan en het volgende defineren in je vhost:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

NGINX configuratie

Voor NGINX kan je het volgende defineren:

return 301 https://$host$request_uri;

Zorg wel dat je de server name hebt geconfigureerd, het redirecten gebeurd namelijk o.b.v. de server name!

Kleine tip!

Omdat certificaten kunnen verlopen, kan ik je adviseren om een aparte configuratie bestand te maken en die te includen. Als je dan bijv. een wildcard certificaat hebt, hoef je maar een keer een configuratie bestand te updaten.

Apache includes

Maak een nieuw bestand aan; bijvoorbeeld; /etc/apache2/ssl-configuratie.conf en zet daar je SSL configuratie in. Je kunt dit bestand vervolgens weer includen door het volgende in je normale vhost configuratie te zetten:

Include /etc/apache2/ssl-configuratie.conf

NGINX includes

Maak een nieuw bestand aan; bijvoorbeeld /etc/nginx/ssl-configuratie.conf en zet daar de SSL configuratie in. Je kun het bestand incluen door het volgende in je normale vhost configuratie te plaatsen;

include  /etc/nginx/ssl-configuratie.conf