Başlangıçta blog kurulumum, her şey bir ev sunucusunda (homeserver) çalıştığı için WireGuard üzerinden saf bir IPv6 projesi olarak planlanmıştı (bu arada ücretsiz IPv6 adreslerini route64.org adresinden alabilirsiniz). Erişilebilirliği artırmak için şimdi harici bir IPv4 proxy ekledim (Teşekkürler @Larvitz).

Ancak bu durum hemen SSL sorunlarına yol açtı: Başlangıçta hem A hem de AAAA kayıtları proxy üzerinden geçtiği için sunucumdaki Let's Encrypt doğrulaması başarısız oldu.

Çözüm: „IPv6-Hack“

Çözüm, AAAA kaydını proxy üzerinden yönlendirmek yerine doğrudan sunucumun WireGuard IP'sine yönlendirmekti.

  • Alan Adı: blog.burningboard.org
  • A-Kaydı (Proxy): 194.28.98.217
  • AAAA-Kaydı (Sunucu): 2a11:6c7:f05:a8::2 (WireGuard)

WireGuard IP'me yönlendirilmiş bu doğrudan AAAA kaydı sayesinde Let’s Encrypt, sunucuma doğrudan IPv6 üzerinden ulaşmaya devam ediyor (çünkü AAAA kaydı varsayılan olarak önceliklidir) ve SSL sertifikasını düzenliyor. IPv4 trafiği ise proxy tarafından şifrelenmiş olarak bana iletiliyor.

Final Yapılandırma

İletişimin sorunsuz çalışması için Caddy sunucularını uyarlamamız gerekti:

1. Kendi sunucumda (NixOS, blog.nix)

Gerçek ziyaretçi IP'lerinin doğru şekilde ulaşması ve proxy IP'si ile üzerine yazılmaması için, proxy'nin güvenilir olarak işaretlenmesi gerekir:

services.caddy.globalConfig = ''
  servers {
      trusted_proxies static 2a06:9801:1c:1000::10
  }
'';

2. Harici proxy üzerinde (Caddy)

Proxy'nin sunucumla HTTPS üzerinden doğru şekilde iletişim kurabilmesi için ana makine adını (SNI) göndermesi gerekir:

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 artık hem IPv4 hem de IPv6 üzerinden erişilebilir, güvenli bir şekilde şifrelenmiş durumda ve ev IP'm buna rağmen gizli kalıyor! 🚀