Stroomlijn je Proxies: SSL-terminator

Veilige SSL terminatie

Deze proxy component maakt deel uit van een serie proxies, die modulair van opzet zijn en vrijwel zero-config nodig hebben. In de serie zijn nu onder andere aanwezig een SSL terminator, een forward proxy en een caching proxy. In de loop der tijd zal ik een een rate limiter, een router/load balancer en een cdn proxy/image resizer toevoegen.


Ik heb een compacte en efficiënte SSL-terminator ontwikkeld, speciaal ontworpen om naadloos in een Docker-container te passen. Deze tool is gespecialiseerd in het verwerken van HTTPS-verzoeken en stuurt ze door naar servers die geen HTTPS-ondersteuning hebben, waardoor veilige communicatie wordt gestroomlijnd.

Belangrijke voordelen van deze SSL-terminator zijn:

  1. Verbeterde beveiliging door versleuteling van gegevens tijdens de overdracht.
  2. Betere naleving van moderne webstandaarden en beveiligingspraktijken.
  3. Flexibiliteit in implementatie, wat een gemakkelijke integratie met bestaande systemen mogelijk maakt.
  4. Vereenvoudigd beheer dankzij de compatibiliteit met Docker-containers.
  5. Schaalbaarheid, waardoor eenvoudige uitbreiding mogelijk is naarmate de netwerkvraag groeit.

Deze SSL-terminator is eenvoudig te configureren met omgevingsvariabelen die de instellingen regelen. Het genereert dynamisch zijn configuratie en past zich aan aan verschillende eisen, zoals details van de backendserver, backendpoort en de HTTPS-poort.

Ontworpen met docker-compose in gedachten, functioneert de terminator uitstekend als een afzonderlijke service. Deze aanpak vereenvoudigt de configuraties van de backendserver en sluit perfect aan bij het principe van enkele verantwoordelijkheid.

Als onderdeel van een breder scala aan tools, waaronder HTTP-cachingmiddleware, snelheidsbegrenzers en load balancers, speelt deze terminator een cruciale rol. Het gaat allemaal om het creëren van een modulaire, onderhoudbare architectuur waarbij elk onderdeel, inclusief deze SSL-terminator, gemakkelijk kan worden geïntegreerd, wat zorgt voor een soepele werking en het elimineren van de noodzaak voor onhandige proxyconfiguraties.


Features

* https terminatie voor een enkele host
* http/2 ondersteuning
* als geen ssl certificaat opgegeven is wordt een default (insecure) ssl certificaat gebruikt om te testen
* configureer met env vars
* image size ongeveer 9mb compressed, memory usage ongeveer 7mb


Minimal docker-compose

Een basis docker compose file ziet er als volgt uit:


version: '3.7'

services:

  sslterminator:
    image: 24hoursmedia/nginx-ssl-terminator:1.0-latest
    ports:
      # expose on port 443 on the host, and port 80 for redirecting to 443
      - "443:443"
      - "80:80"
    environment:
      - "BACKEND_HOST=webserver"

  webserver:
    image: nginx:1.19.6-alpine

Met deze post wil ik inzicht geven in de strategieën en gedachten achter mijn DevOps-projecten. Het laat mijn inzet zien om de DevOps best practices te volgen en up-to-date te blijven met technologische vooruitgang.



Datum: November, 2023

Vaardigheden

  • Nginx
  • Docker multistage build
  • Docker multiplatform build
  • Documentatie met Jetbrains Writerside