चरण 05 · डेलिगेट करें
इसे बॉक्स पर पॉइंट करें। फिर देखें कि आपने अभी क्या प्रकाशित कर दिया।
डेलिगेशन ख़ुद में सिर्फ़ दो रिकॉर्ड और पाँच मिनट का काम है। रजिस्ट्रार पर नेमसर्वर सेट करें, होस्ट के लिए एक address रिकॉर्ड बनाएँ, बदलाव के रजिस्ट्री तक प्रोपगेट होने का इंतज़ार करें, और इसकी पुष्टि अपने ही नेटवर्क के बाहर से करें, न कि उस मशीन से जो जवाब पहले से जानती है। बाक़ी के चालीस मिनट उस हर चीज़ के लायक़ हैं जिसे डेलिगेशन बाद में दिखा देता है।
dig +short NS example.com @1.1.1.1 # the delegation as the world sees it, not your cache
dig +short A app.example.com # must return the VPS address before you deploy anything
dig +short CAA example.com # empty today; step 05 fills it in
dig +short DS example.com # non-empty only if DNSSEC is actually signed
प्राधिकृत सर्वर कौन चलाता है के मामले में, ईमानदार जवाब वह नहीं है जो यह सीरीज़ बाक़ी जगहों पर आमतौर पर देती है। प्राधिकृत DNS की सेल्फ़-होस्टिंग वह एक घटक है जहाँ यह ख़ुद करना आमतौर पर ज़्यादा बुरा साबित होता है: इसके लिए अलग-अलग नेटवर्कों पर दो या अधिक सर्वर चाहिए, इसे ठीक उस आउटेज के दौरान भी काम करते रहना पड़ता है जिसने आपके मुख्य बॉक्स को गिरा दिया है, इसे एम्प्लिफ़िकेशन के दुरुपयोग से बचने के लिए निरंतर देखभाल चाहिए, और जब यह विफल होता है तो इसके साथ सब कुछ विफल हो जाता है — यहाँ तक कि वह सर्टिफिकेट नवीनीकरण भी जिससे आप स्थिति ठीक कर सकते थे। यह वह सहसंबंध भी बना देता है जिससे आप बचना चाहते थे, क्योंकि दो परियोजनाओं के बीच साझा किया गया एक सेल्फ़-रन नेमसर्वर उन्हें, किसी भी व्यक्ति द्वारा क्वेरी किए जा सकने वाले डेटासेट में, सार्वजनिक रूप से आपस में जोड़ देता है। एक ऐसा DNS ऑपरेटर इस्तेमाल करें जिसका anycast नेटवर्क हो, उसे उसकी फ़ीचर लिस्ट के बजाय इस आधार पर चुनें कि उसे पहचान दस्तावेज़ चाहिए या नहीं, और एक एक्सपोर्ट की गई ज़ोन फ़ाइल रखें ताकि जगह बदलना खुदाई जैसा नहीं, बल्कि बस पेस्ट करने जैसा काम रहे। यह सीरीज़ में मौजूद प्राइवेट रिकर्सिव रिज़ॉल्वर से एक अलग काम है, जो आप क्या खोजते हैं इसका लॉग आपकी अपनी मशीन पर ले जाता है और करने लायक़ है।
अब वह लीक, जो इस पेज पर किसी भी और चीज़ से ज़्यादा सावधानी से बनाए गए सेटअप बिगाड़ती है, क्योंकि यह ख़ामोशी से और आपके ध्यान देना बंद कर देने के बाद काम करती है। किसी सार्वजनिक रूप से भरोसेमंद प्राधिकरण द्वारा जारी हर सर्टिफिकेट ऐसे स्थायी सार्वजनिक लॉग में दाख़िल किया जाता है जिससे प्रविष्टियाँ कभी हटती नहीं, और ब्राउज़र उन सर्टिफिकेट को अस्वीकार कर देते हैं जो ऐसा नहीं करते। यह लॉग इसलिए मौजूद हैं ताकि ग़लत-जारी को पहचाना जा सके, जो सचमुच एक अच्छी बात है, और इन्हें मुफ़्त सर्च इंटरफ़ेस द्वारा इंडेक्स किया जाता है। इसका नतीजा यह है कि आपने जिस भी होस्टनेम के लिए कभी सर्टिफिकेट माँगा हो, वह किसी के लिए भी, हमेशा के लिए, बस एक कीवर्ड सर्च दूर है — इसमें staging., vpn., backup. और वह प्रशासनिक नाम भी शामिल है जिसके बारे में आपने सोचा था कि कोई अंदाज़ा नहीं लगा पाएगा।
# every certificate ever issued under the zone, and every hostname inside each one
curl -s 'https://crt.sh/?q=%25.example.com&output=json' | jq -r '.[].name_value' | sort -u
इसका उपाय है ज़ोन के लिए एक इकलौता वाइल्डकार्ड सर्टिफिकेट, जिसे इसके नीचे मौजूद हर इंटरनल होस्टनेम के लिए सर्व किया जाए। इसके बाद लॉग एंट्री सिर्फ़ यह दर्ज करती है कि ज़ोन के लिए एक सर्टिफिकेट मौजूद है, इसके भीतर क्या है इसके बारे में कुछ नहीं। इसकी क़ीमत यह है कि एक वाइल्डकार्ड के लिए आसान वाली फ़ाइल-आधारित चुनौती के बजाय DNS-आधारित चुनौती चाहिए, यानी बॉक्स पर आपके DNS ऑपरेटर के लिए एक API टोकन — दस मिनट का सेटअप, आपकी इंटरनल नेमिंग स्कीम की एक स्थायी सार्वजनिक सूची के मुक़ाबले। एक वाइल्डकार्ड जारी करें, उसे रिवर्स प्रॉक्सी पर रखें, और प्रति-होस्टनेम सर्टिफिकेट माँगना बंद कर दें।
दो रिकॉर्ड यह काम पूरा कर देते हैं। एक CAA रिकॉर्ड यह बताता है कि इस नाम के लिए कौन-से सर्टिफिकेट प्राधिकरण जारी करने के लिए अधिकृत हैं, जिससे किसी भी अन्य प्राधिकरण द्वारा ग़लत-जारी को बाद में पहचानने के बजाय स्रोत पर ही मना कर दिया जाता है। और DNSSEC, अगर आपकी रजिस्ट्री और आपका DNS ऑपरेटर दोनों इसे सपोर्ट करते हैं, तो डेलिगेशन पर हस्ताक्षर कर देता है ताकि एक रिज़ॉल्वर किसी जाली जवाब को असली जवाब से अलग बता सके — यह अधिकतर ऑपरेटरों पर बस एक स्विच है और रजिस्ट्रार पर एक रिकॉर्ड है, और सावधानी बरतने की एकमात्र बात यह है कि जिस साइन की गई ज़ोन की keys ठीक से नहीं संभाली जातीं, वह पूरी तरह विफल हो जाती है — यानी पूरी तरह बंद हो जाती है।
; in the zone — only this authority may issue, and tell us if anyone tries
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issuewild "letsencrypt.org"
example.com. IN CAA 0 iodef "mailto:abuse@example.com"
अंत में, सहसंबंध वाली परत, जहाँ बिना किसी की कोई गलती किए भी दो अलग-अलग हिस्से एक बन जाते हैं। passive-DNS डेटासेट यह दर्ज करते हैं कि कौन-से नाम कब किन पतों पर resolve हुए; एक साझा पता, एक साझा नेमसर्वर सेट या एक साझा मेल एक्सचेंजर, दो ऐसी परियोजनाओं को जोड़ने के लिए काफ़ी होता है जिनमें और कुछ भी साझा नहीं है। अगर दो नामों को बिना जुड़े रहना ज़रूरी है, तो उन्हें अलग सर्वर, अलग नेमसर्वर सेट और अलग मेल रूटिंग चाहिए — और यही उन छोटी चीज़ों पर भी लागू होता है जिन्हें कोई नहीं गिनता, जैसे दोनों साइटों पर दोबारा इस्तेमाल किया गया एक एनालिटिक्स आइडेंटिफ़ायर या एक जैसा favicon, जो दोनों ही इंटरनेट-स्तर पर उस किसी भी व्यक्ति के लिए खोजे जा सकते हैं जो खोजना चाहे।