Awalnya, pengaturan blog saya direncanakan sebagai proyek IPv6 murni melalui WireGuard, karena semuanya dijalankan di server rumah (omong-omong, Anda bisa mendapatkan alamat IPv6 gratis di route64.org). Untuk meningkatkan aksesibilitas, sekarang saya telah menambahkan proxy IPv4 eksternal (Terima kasih @Larvitz).
Namun, hal ini segera menimbulkan masalah SSL: Karena awalnya baik record A maupun AAAA berjalan melalui proxy, validasi Let's Encrypt di server saya gagal.
Solusi: „IPv6-Hack“
Solusinya adalah dengan mengarahkan entri AAAA secara eksplisit langsung ke IP WireGuard server saya, alih-alih melewatkannya melalui proxy juga.
- Domain:
blog.burningboard.org - A-Record (Proxy):
194.28.98.217 - AAAA-Record (Server):
2a11:6c7:f05:a8::2(WireGuard)
Melalui entri AAAA langsung ke IP WireGuard saya ini, Let's Encrypt tetap dapat menjangkau server saya secara langsung via IPv6 (karena record AAAA diprioritaskan secara default) dan menerbitkan sertifikat SSL. Lalu lintas IPv4 diteruskan dari proxy ke saya dalam keadaan terenkripsi.
Konfigurasi Akhir
Agar komunikasi berjalan lancar, kami harus menyesuaikan server Caddy:
1. Di server saya (NixOS, blog.nix)
Agar IP pengunjung yang asli sampai dengan benar dan tidak tertimpa oleh IP proxy, proxy tersebut harus ditandai sebagai tepercaya (trusted):
services.caddy.globalConfig = ''
servers {
trusted_proxies static 2a06:9801:1c:1000::10
}
'';
2. Di proxy eksternal (Caddy)
Agar proxy dapat menghubungi server saya dengan benar melalui HTTPS, ia harus menyertakan nama host (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
}
}
Blog sekarang dapat diakses melalui IPv4 dan IPv6, terenkripsi dengan aman, dan IP rumah saya tetap terjaga privasinya! 🚀