Je kunt met .htaccess in de Web shared folder het verkeer op poort 80 redirecten naar 443 en requests voor domeinen ombuigen (bijv domein.com naar
www.domein.com).
Het verkeer van buiten kan allemaal op dezelfde twee poorten HTTP/80- HTTPS/443 binnenkomen en de rewrite rules zorgen ervoor dat het juiste verkeer naar de juiste site wordt geforward.
(Instructies voor DSM 6.2.2.24922 update 2)
Instellingen in web station:
- Virtual Host: "Name-based"
- vul de (sub)domeinnaam in waar de site op moet reageren, bijv "domein.com".
- port: vink bij 80/443
- laat hsts en http/2 nog even uit.
Instellingen Control Panel / Security / tab Certificate:
- Voeg een certificaat toe voor je domein; Let's encrypt is prima. Maak een certificaat aan met meerdere "Subject Alternative names". het certificaat wordt dan geschikt voor meerdere subdomeinen. Bijvoorbeeld "domein.com" met alternative names "www.domein.com", "nogiets.domein.com".
- Kies "configure" knop om het juiste certificaat te koppelen aan de juiste "service"=virtual host
Instellingen shared folder web\.htaccess:
# redirect "
http://domein.com", "
http://allesbehalvewww.domein.com", maar ook "
https://domein.com" naar
https://www.domein.comRewriteCond %{HTTP_HOST} ^!(www\.)domein\.com$ [OR,NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$
https://www.domein.com%{REQUEST_URI} [R=301,L]
(ik hoop dat ik de bovenstaande condities juist heb opgesteld, want ik doe dit uit mn hoofd).
Op het moment dat de Synology de request hostname niet kan matchen op virtual hostnames / reverse proxy namen, dan gaat ie de .htaccess nalopen en kan je via rewrite rules http->https redirects en subdomein redirects laten uitvoeren.
Toegang tot je DSM via domeinnaam "dsm.domein.com" kun je via "customized domain" instellen:
Instellingen Control Panel / Network / DSM Settings
- Aanvinken "Automatically redirect HTTP connections to HTTPS (Web Statin and Photo Station excluded)"!
- Domain Enable customized domain: aanvinken
- Domain: dsm.domein.com
- (Enable HSTS mag aan staan)
"dsm.domein.com" (http of https) zal nu je DSM pagina van je NAS openen.
Laatste tip: met reverse proxy kun je ook nog leuke dingen doen. Mijn Synology draait een paar Docker images met web sites die luisteren naar requests op rare poorten, bijvoorbeeld 43443. Via een reverse proxy entry wordt het verkeer voor een hostname geredirect naar
http://localhost:43443 waar de web server in het Docker image op HTTP (NIET https) luistert. De Synology zorgt via de reverse proxy en certificaat voor "offloading" van het HTTPS verkeer, terwijl de web server in de Docker Image http mag blijven doen; geen moeilijke dingen in de Docker image met https of certificaten.
Instellingen Control Panel / Application Portal / Reverse proxy
- Description: wat je wil
- Source protocol: HTTPS
- Source hostname: webapp.domein.com
- Source port: 443
- Destination protocol: HTTP
- Destination hostname: localhost
- port: 43443
(De web applicatie die ik draai in Docker is een ASP.NET Core web applicatie; gewoon geweldig dat ik een webapp kan ontwikkelen op mn Windows laptop, debuggen, inpakken in een Docker image en kan draaien op een Synology Linux omgeving!)