Algselt oli minu blogi seadistus planeeritud puhta IPv6-projektina üle WireGuardi, kuna kogu süsteem jookseb koduserveris (tasuta IPv6-aadresse saab muide lehelt route64.org). Kättesaadavuse parandamiseks lisasin nüüd välise IPv4-proksi (tänud @Larvitz).
Sellega tekkisid aga kohe SSL-probleemid: kuna algselt suunati nii A- kui ka AAAA-kirje läbi proksi, ebaõnnestus Let's Encrypti valideerimine minu serveris.
Lahendus: „IPv6-häkk“
Lahendus oli suunata AAAA-kirje selgesõnaliselt otse minu serveri WireGuardi IP-aadressile, selle asemel et juhtida ka see läbi proksi.
- Domeen:
blog.burningboard.org - A-kirje (Proksi):
194.28.98.217 - AAAA-kirje (Server):
2a11:6c7:f05:a8::2(WireGuard)
Tänu sellele otsesele AAAA-kirjele minu WireGuardi IP-le jõuab Let’s Encrypt minu serverini jätkuvalt otse IPv6 kaudu (kuna AAAA-kirje on vaikimisi prioriteetne) ja väljastab SSL-sertifikaadi. IPv4-liiklus suunatakse proksi poolt krüpteeritult mulle edasi.
Lõplik konfiguratsioon
Sujuva suhtluse tagamiseks pidime Caddy servereid kohandama:
1. Minu serveris (NixOS, blog.nix)
Et külastajate tegelikud IP-aadressid jõuaksid kohale korrektselt ega saaks proksi IP-ga üle kirjutatud, tuleb see märkida usaldusväärseks:
services.caddy.globalConfig = ''
servers {
trusted_proxies static 2a06:9801:1c:1000::10
}
'';
2. Välises proksis (Caddy)
Et proksi pöörduks minu serveri poole korrektselt HTTPS-i kaudu, peab see kaasa saatma hostinime (SNI):
reverse_proxy [https://[2a11:6c7:f05:a8::2]:443](https://[2a11:6c7:f05:a8::2]:443) {
header_up Host {host}
transport http {
tls_server_name blog.burningboard.org
}
}
Blogi on nüüd kättesaadav nii IPv4 kui ka IPv6 kaudu, turvaliselt krüpteeritud ja minu kodu-IP jääb sellegipoolest privaatseks! 🚀