स्व-हस्ताक्षरित वाइल्डकार्ड प्रमाणपत्र


18

मुझे घर पर सेटोल मिल गया है, इसलिए मैं अपने स्वयं के सर्वर के साथ किसी भी वेबसाइट के अनुरोधों को संभालने में सक्षम होना चाहता हूं, ताकि "इस साइट को अवरुद्ध कर दिया गया" पृष्ठ दिखाई दे।

मैं किसी भी यूआरएल के लिए एक स्व-हस्ताक्षरित प्रमाण पत्र बनाकर और अपने डिवाइस पर इसे स्थापित करने का प्रयास कर रहा हूं। प्रमाणपत्र बनाने के लिए मैंने जो आदेश दिए थे:

openssl genrsa 2048 > pihole.key
openssl req -new -x509 -nodes -days 36500\
    -key pihole.key \
    -subj "/C=NL/ST=Utrecht, Inc./CN=*" \
    -reqexts SAN \
    -config <(cat /etc/ssl/openssl.cnf \
        <(printf "\n[SAN]\nsubjectAltName=DNS:*,DNS:*")) \
    -out pihole.cert
openssl x509 -noout -fingerprint -text < pihole.cert > pihole.info
cat pihole.cert pihole.info > pihole.pem
service apache2 reload

मैंने यह प्रमाणपत्र अपने विंडोज़ डिवाइस पर स्थापित किया है, और विंडोज़ दिखाता है कि यह एक वैध प्रमाणपत्र है।

हालाँकि, क्रोम मुझे एक देता है NET::ERR_CERT_COMMON_NAME_INVALID, और बढ़त मुझे एक समान त्रुटि देता है ( DLG_FLAGS_SEC_CERT_CN_INVALID)

ऐसा क्यों है? क्या CN = *अभी अनुमति नहीं है? मैं जो चाहता हूं उसे कैसे हासिल कर सकता हूं?


एक साइड नोट के रूप में: प्रमुख वेबसाइटों के लिए आपका ब्राउज़र संभवतः आपके द्वारा उत्पन्न किसी भी प्रमाण पत्र को स्वीकार नहीं करेगा। वे साइटें सर्टिफिकेट-पिनिंग का उपयोग करती हैं और उन ब्राउज़रों में शामिल करने के लिए अपने टीएलएस सेरंग के फिंगरप्रिंट प्रस्तुत करती हैं। आपका प्रमाणपत्र संग्रहित फिंगरप्रिंट से मेल नहीं खाएगा और अवरुद्ध हो जाएगा। : यहाँ और अधिक जानकारी है noncombatant.org/2015/05/01/about-http-public-key-pinning
मार्टिन Heemels

स्व-हस्ताक्षरित सीट्स समस्याग्रस्त हो सकते हैं जैसा कि आपने खोजा है। इसके बजाय आप letencrypt.org से "उचित" प्रमाणन प्राप्त कर सकते हैं - वे स्वतंत्र हैं और वाइल्डकार्ड का समर्थन करते हैं। इस बात पर निर्भर करता है कि आप कितने मेजबानों के साथ कवर करने की कोशिश कर रहे थे * आपको वास्तव में जरूरत है, लेटेन्सक्रिप्ट से एक (या अधिक) सेर आपको कवर कर सकता है
डेव

2
@DaveSmylie यह एक एडब्लॉकर के लिए है, मेरे पास डोमेन नहीं हैं।
डेनियल वैन डेन बर्ग

1
@Stewart कृपया मेरी पिछली टिप्पणी पढ़ें।
डेनियल वैन डेन बर्ग

1
नोट का भी: यदि आप इसका उपयोग किसी एडब्लॉकर के लिए कर रहे हैं, तो वैकल्पिक पेज दिखाने के बजाय संबंधित सर्वर से कनेक्शन को चुपचाप छोड़ देना बेहतर हो सकता है। 90% आधुनिक विज्ञापन शुरू में जावास्क्रिप्ट के माध्यम से लोड होते हैं, इसलिए यह संभावना नहीं है कि आपका वैकल्पिक पृष्ठ पृष्ठ पर कोई वास्तविक दृश्यता होने वाला है। यह संभवतः सामान को तोड़ने वाला है, गैर जावास्क्रिप्ट संसाधनों को जावास्क्रिप्ट के रूप में लोड करने की कोशिश कर रहा है।
नजॉल

जवाबों:


42

इसकी अनुमति नहीं है। मानक टीएलएस होस्टनाम सत्यापन के प्रोटोकॉल-विशिष्ट जोड़ के रूप में, सभी प्रमुख वेब ब्राउज़र (HTTPS क्लाइंट) मूल रूप से वाइल्डकार्ड प्रमाणपत्रों को "eTLD + 1" तक सीमित करने के लिए सहमत हुए हैं - अर्थात, "प्रभावी TLD" प्लस और भी अधिक गैर होना चाहिए -वार्डकार्ड घटक।

आम तौर पर यह कम से कम दो घटकों की आवश्यकता के लिए अनुवाद करता है ( *.example.netठीक है, लेकिन *.netनहीं है, न ही एक नंगे है *)। "प्रभावी TLD" नियम इसे बहु-स्तरीय प्रत्ययों तक विस्तारित करता है, co.ukक्योंकि लोग व्यवहार में अविभाज्य "TLDs" के रूप में उपयोग करते हैं। (इसलिए *.example.ac.ukअनुमति है लेकिन *.ac.ukनहीं है।)

आप यह देख सकते हैं कि क्रोमियम और मोज़िला में सार्वजनिक प्रत्यय सूची कैसे लागू की जाती है

सुरक्षा में संबंधित चर्चा देखें। जिसमें CA-Browser फोरम बेसलाइन रिक्वायरमेंट्स का एक उद्धरण है (जो केवल जनता से वेबपीकेआई सीए पर लागू होता है, लेकिन फिर भी सामान्य कार्यान्वयन को प्रतिबिंबित करता है):

CA SHALL ने किसी भी प्रमाणपत्र को रद्द कर दिया जहां वाइल्डकार्ड वर्ण पहली लेबल स्थिति में "रजिस्ट्री" नियंत्रित "लेबल" या "सार्वजनिक प्रत्यय" के बाईं ओर होता है।


इस प्रतिबंध से बचने के लिए, एक प्रमाण पत्र प्राधिकरण का निर्माण करें जो भी वेबसाइट पर जाने के लिए "मांग पर" प्रमाण पत्र जारी करता है। मुझे नहीं पता कि इसे किसी भी नियमित वेब सर्वर में कैसे लागू किया जाएगा, लेकिन यह एक सामान्य विधि है जिसका उपयोग वाणिज्यिक टीएलएस इंटरसेप्शन सिस्टम द्वारा किया जाता है; एंटीवायरस प्रोग्राम और अन्य मैलवेयर; और Burp प्रॉक्सी सूट जैसे विकास उपकरण।

उदाहरण के लिए, OpenResty वेब सर्वर (मूल रूप से Nginx-with-Lua) के पासssl_certificate_by_lua गतिशील प्रमाणपत्र पीढ़ी को लागू करने का एक विकल्प है। स्क्वीड प्रॉक्सी अपने ssl-bump फीचर में सर्टिफिकेट नकल का समर्थन करता है ।

यह भी ध्यान दें कि यदि सब मौजूद हैं तो SAN सब्जेक्ट-सीएन को पूरी तरह से ओवरराइड कर देता है। यह CN को ज्यादातर बेमानी बनाता है (जब तक कि आपका क्लाइंट सॉफ्टवेयर इतना प्राचीन नहीं है कि इसमें SAN सपोर्ट की कमी है), और सार्वजनिक CAs वेब ब्राउज़र के लिए भी इसे स्वीकार नहीं करते हैं।


मुझे पहले से ही TLD + 1 की सीमा के बारे में पहले से ही एक परियोजना में अनुभव होता है। इसे बिछाने के लिए धन्यवाद। +1
रुई एफ रिबेरो

आपके विस्तृत जवाब के लिए धन्यवाद, मुझे लगता है कि यह हाँ बताता है। क्या आप एक अलग दृष्टिकोण को जानते हैं जो मैं उपयोग कर सकता हूं?
डेनियल वैन डेन बर्ग

26
"और अन्य मैलवेयर" के रणनीतिक प्लेसमेंट के लिए अपग्रेड किया गया।
१२:१२

@ DaniëlvandenBerg: मुझे लगता है कि पोस्ट में ही एक सुझाव दिया है। मैंने अभी Nginx और विद्रूप उदाहरणों के लिंक जोड़े हैं।
user1686

5

एक प्रमाण पत्र में केवल एक वाइल्डकार्ड हो सकता है (अर्थात नहीं *.*.example.com), यह केवल एक लेबल से मेल खा सकता है (अर्थात केवल www, नहीं www.example.com), यह केवल सबसे बाईं ओर हो सकता है (अर्थात *.www.example.comनहीं www.*.example.com) और यह सार्वजनिक प्रत्यय के अंदर नहीं हो सकता (यानी नहीं *.com)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.