Redirect server

From Hobbynet Admin Wiki
Jump to navigation Jump to search

doel

Deze servers redirect-lb1 en redirect-lb2 zorgen er voor dat sites op zowel http als https geredirect worden naar de opgegeven URL.
Hiervoor maakt hij gebruik van de gratis SSL certificaten van Let's Encrypt, die 3 maanden geldig zijn.

hoe

redirect toevoegen

stap 1

Pas DNS records aan, zodat ze naar vip100.network.hobby.nl verwijzen of naar de IP adressen van die vip.
Wacht met de vervolg stappen totdat op ns1, ns2, ns3 en ns4 deze wijziging actief is.

stap 2

Op dbclus01-int is database genaamd 'redirect' met hierin een tabel 'redirects'.
Om een record toe te voegen is er een script op redirect-lb1-int aanwezig:

php /usr/local/hobbynet/bin/addredirect.php

Gebruik: add-redirect.php <DomeinNaam> <DomeinPeriode>
Geef de nieuwe domeinnaam die geredirect moet worden en url waarnaar hij geredirect moet worden

stap 3

Draai op redirect-lb1-int het script /usr/local/hobbynet/bin/update-apache.sh als root.
Hier wordt het certificaat aangevraagd, en de redirect actief gemaakt.
Deze stap kan je bewaren tot het laatst als je meerdere domeinen hebt.

redirect aanpassen

stap 1

Op dbclus01-int is database genaamd 'redirect' met hierin een tabel 'redirects'.
Pas hier voor het desbetreffende domein de redirect URL aan.

stap 2

Draai op redirect-lb1-int het script /usr/local/hobbynet/bin/updatenieuwecerts.sh als root.
De Apache config wordt aangepast en herladen.

redirect verwijderen

moet nog script voor gemaakt worden nu is met de hand eerst het certificaat revoken:

certbot revoke --cert-path /etc/letsencrypt/domeinnaam/cert.pem

daarna haal je uit de database het desbetreffende domein

scripts

Alle scripts draaien op redirect-lb1-int.

/usr/local/hobbynet/bin/update-apache.sh

Dit script zet eerst apache uit op de redirect-lb2 en lb3.
Daarna gaat kijken of er certificaten vernieuwd moeten worden, en vernieuwd deze zo nodig.
Daarna kijkt hij over nieuwe certificaten nodig zijn en vraagt die aan.updatecerts.php
Daarna maakt hij nieuwe apacheconfiguratie.maakconfig.php

Herstart locale apache om de de nieuwe apache configuratie te activeren.
Kopieert deze configuratie naar redirect-lb2 en lb3 en start daar apache weer.

/usr/local/hobbynet/lib/updatecerts.php

Dit script kijkt in de database of er nog certificaten moeten worden aangevraagd zo ja vraagt hij deze aan.

/usr/local/hobbynet/lib/maakconfig.php

Dit script maakt aan de hand van de database een apache configuratie file aan.

/usr/local/hobbynet/lib/addredirect.php

Met dit script kan je heel eenvoudig een redirect toevoegen aan de database vanaf de cli

/usr/local/hobbynet/bin/addredirect.sh

simpel script dat het php script /usr/local/hobbynet/lib/addredirect.php aanroept:

Gebruik: addredirect.sh <domeinnaam> <redirecturl> <static= optioneel standaard 0>

database

op Dbclus01-int staat database redirects, met 1 tabel namelijk redirects. de tabel layout is als volgt en wijst zich van zelf :

velden tabel redirects

id Het id nr (primare index)
domeinnaam de domein naam die geredirect moet worden
tech-c redirect url waar na geredirect moet worden incl http:// of https://
Cert aangemaakt Is het certificaat voor dit domein aan gemaakt. standaard 0 dan maakt certbot een nieuwe certificaat aan
Static redirect Moet de redirect static of dynamic zijn


Loadbalancer

De loadbalancer configuratie is iets anders dan standaard.
Op lb1 wordt niet getest of Apache draait ivm het aanvragen / updaten van Let's Encrypt certificaten (dat script neemt tijdelijk poort 80 of 443 over). Daarom wordt ook bij toevoegen van redirects eerst Apache gestopt.
Dit is ook de reden waarom je niet in productie sites Let's Encrypt gebruikt.