ஆரம்பத்தில் எனது வலைப்பதிவு அமைப்பு ஒரு ஹோம் சர்வரில் (homeserver) இயங்குவதால், WireGuard வழியாக ஒரு தூய IPv6-திட்டமாக திட்டமிடப்பட்டது (இலவச IPv6 முகவரிகளை route64.org இல் பெறலாம்). அணுகல்தன்மையை அதிகரிக்க, இப்போது நான் ஒரு வெளிப்புற IPv4 ப்ராக்ஸியைச் (proxy) சேர்த்துள்ளேன் (@Larvitz அவர்களுக்கு நன்றி).
இருப்பினும், இதில் உடனடியாக SSL சிக்கல்கள் ஏற்பட்டன: ஆரம்பத்தில் A மற்றும் AAAA பதிவுகள் (records) இரண்டும் ப்ராக்ஸி வழியாகச் சென்றதால், எனது சர்வரில் Let's Encrypt சரிபார்ப்பு தோல்வியடைந்தது.
தீர்வு: „IPv6-Hack“
இதற்கான தீர்வு, AAAA-பதிவை ப்ராக்ஸி வழியாக அனுப்பாமல், நேரடியாக எனது சர்வரின் WireGuard IP-க்கு சுட்டிக்காட்டுவதாகும்.
- டொமைன் (Domain):
blog.burningboard.org - A-பதிவு (Proxy):
194.28.98.217 - AAAA-பதிவு (Server):
2a11:6c7:f05:a8::2(WireGuard)
எனது WireGuard IP-க்கு இந்த நேரடி AAAA-பதிவு மூலம், Let’s Encrypt எனது சர்வரைத் தொடர்ந்து நேரடியாக IPv6 வழியாக அடைகிறது (ஏனெனில் AAAA-பதிவு முன்னுரிமை பெறுகிறது) மற்றும் SSL சான்றிதழை வழங்குகிறது. IPv4 டிராஃபிக் ப்ராக்ஸியால் குறியாக்கம் (encrypt) செய்யப்பட்டு என்னிடம் அனுப்பப்படுகிறது.
இறுதி கட்டமைப்பு
தொடர்பு சீராக நடைபெற, நாங்கள் Caddy சர்வர்களை மாற்றியமைக்க வேண்டியிருந்தது:
1. எனது சர்வரில் (NixOS, blog.nix)
உண்மையான பார்வையாளர்களின் IP முகவரிகள் சரியாக வருவதற்கும், ப்ராக்ஸியின் IP-யால் அவை மாற்றப்படாமல் இருப்பதற்கும், ப்ராக்ஸியை நம்பகமானதாக (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 வழியாக அணுகக்கூடியது, பாதுகாப்பாக குறியாக்கம் செய்யப்பட்டுள்ளது, மேலும் எனது வீட்டு IP முகவரி ரகசியமாகவே இருக்கிறது! 🚀