मुळात माझे ब्लॉग सेटअप केवळ WireGuard द्वारे IPv6-प्रकल्प म्हणून नियोजित होते, कारण हे सर्व एका होम सर्व्हरवर चालवले जाते (तसे, तुम्हाला route64.org वर विनामूल्य IPv6 पत्ते मिळू शकतात). उपलब्धता वाढवण्यासाठी, मी आता एक बाह्य IPv4 प्रॉक्सी जोडला आहे (@Larvitz चे आभार).

मात्र, यामध्ये लगेच SSL समस्या उद्भवल्या: सुरुवातीला A आणि AAAA दोन्ही रेकॉर्ड प्रॉक्सीद्वारे जात असल्याने, माझ्या सर्व्हरवर Let's Encrypt व्हॅलिडेशन अयशस्वी झाले.

उपाय: "IPv6-हॅक"

उपाय असा होता की, AAAA-एंट्री प्रॉक्सीद्वारे पाठवण्याऐवजी ती थेट माझ्या सर्व्हरच्या WireGuard-IP वर निर्देशित करणे.

  • Domain: blog.burningboard.org
  • A-Record (Proxy): 194.28.98.217
  • AAAA-Record (Server): 2a11:6c7:f05:a8::2 (WireGuard)

माझ्या WireGuard-IP वरील या थेट AAAA-एंट्रीमुळे, Let’s Encrypt अजूनही IPv6 द्वारे थेट माझ्या सर्व्हरपर्यंत पोहोचते (कारण AAAA-रेकॉर्डला डीफॉल्टनुसार प्राधान्य दिले जाते) आणि SSL प्रमाणपत्र जारी करते. IPv4 ट्रॅफिक प्रॉक्सीद्वारे एनक्रिप्टेड स्वरूपात माझ्याकडे पाठवला जातो.

अंतिम कॉन्फिगरेशन

संवाद सुरळीतपणे व्हावा यासाठी आम्हाला Caddy सर्व्हरमध्ये बदल करावे लागले:

1. माझ्या सर्व्हरवर (NixOS, blog.nix)

खरे व्हिजिटर आयपी (IPs) योग्यरित्या मिळावेत आणि प्रॉक्सीच्या आयपीने ओव्हरराईट होऊ नयेत यासाठी, प्रॉक्सीला 'ट्रस्टेड' (trusted) म्हणून चिन्हांकित करणे आवश्यक आहे:

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

2. बाह्य प्रॉक्सीवर (Caddy)

प्रॉक्सीने माझ्या सर्व्हरशी HTTPS द्वारे योग्यरित्या संवाद साधण्यासाठी, त्याने होस्टनेम (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
    }
}

ब्लॉग आता IPv4 आणि IPv6 दोन्हीवर उपलब्ध आहे, सुरक्षितपणे एनक्रिप्टेड आहे आणि तरीही माझा होम आयपी खाजगी राहतो! 🚀