मुझे दिए गए उत्तरों और आगे के संसाधनों से बिट्स और टुकड़ों को जोड़कर विंडोज पर स्व-हस्ताक्षरित प्रमाण पत्र के माध्यम से अपना रास्ता बनाना था। यहाँ मेरा अपना है (और उम्मीद है कि पूरा) वॉक-थ्रू। आशा है कि यह आपको मेरे कुछ दर्दनाक सीखने की अवस्था से दूर कर देगा। इसमें संबंधित विषयों पर इनफ़ोस भी शामिल हैं जो जल्द ही या बाद में जब आप अपने स्वयं के सीट्स बनाते हैं तो पॉप अप करेंगे।
विंडोज 10 और नीचे पर एक स्व-हस्ताक्षरित प्रमाण पत्र बनाएं
Makecert.exe का उपयोग न करें। इसे Microsoft द्वारा हटा दिया गया है।
आधुनिक तरीके से पॉवरशेल कमांड का उपयोग किया जाता है।
विंडोज 10:
प्रशासक विशेषाधिकारों के साथ खुला अधिकार:
New-SelfSignedCertificate -DnsName "*.dev.local", "dev.local", "localhost" -CertStoreLocation cert:\LocalMachine\My -FriendlyName "Dev Cert *.dev.local, dev.local, localhost" -NotAfter (Get-Date).AddYears(15)
विंडोज 8, विंडोज सर्वर 2012 आर 2:
इन प्रणालियों पर पॉवर्सशेल में पैरामीटर -FriendlyName और -NotAfter मौजूद नहीं हैं। बस उन्हें उपरोक्त कमांड लाइन से हटा दें।
प्रशासक विशेषाधिकारों के साथ खुला अधिकार:
New-SelfSignedCertificate -DnsName "*.dev.local", "dev.local", "localhost" -CertStoreLocation cert:\LocalMachine\My
एक विकल्प नीचे पुराने विंडोज संस्करण के लिए विधि का उपयोग करना है, जो आपको प्रमाणित निर्माण के लिए विन 10 की सभी सुविधाओं का उपयोग करने की अनुमति देता है ...
पुराने Windows संस्करण:
पुराने विंडोज संस्करणों के लिए मेरी सिफारिश एक विन 10 मशीन पर प्रमाण पत्र बनाने के लिए है, इसे एक .PFX फ़ाइल में निर्यात करें जो एक mmc उदाहरण का उपयोग कर रहा है (नीचे "प्रमाण पत्र पर विश्वास करें") और इसे लक्ष्य मशीन पर प्रमाणित स्टोर में आयात करें। पुराने विंडोज ओएस। प्रमाणपत्र आयात करने के लिए इसे राइट-क्लिक न करें। हालाँकि संदर्भ मेनू में एक "आयात प्रमाणपत्र" आइटम है, यह मेरे सभी परीक्षणों को Win Server 2008 पर उपयोग करने में विफल रहा। इसके बजाय लक्ष्य मशीन पर एक और mmc उदाहरण खोलें, "प्रमाणपत्र (स्थानीय कंप्यूटर) / व्यक्तिगत / प्रमाण पत्र" पर नेविगेट करें , मध्य फलक में क्लिक करें और सभी कार्यों का चयन करें → आयात करें।
परिणामी प्रमाण पत्र
उपरोक्त दोनों कमांड डोमेन के लिए एक प्रमाण पत्र बनाते हैं localhost
और *.dev.local
।
Win10 संस्करण में अतिरिक्त रूप से 15 साल का समय है और "देव सर्टिफिकेट * .dev.local, dev.local, localhost" का एक पठनीय प्रदर्शन नाम है।
अद्यतन: यदि आप पैरामीटर में कई होस्टनाम प्रविष्टियाँ प्रदान करते हैं-DnsName
(जैसा कि ऊपर दिखाया गया है) तो इन प्रविष्टियों में से पहला डोमेन का विषय (AKA सामान्य नाम) बन जाएगा। सभी hostname प्रविष्टियों की पूरी सूची प्रमाण पत्र के क्षेत्र विषय वैकल्पिक नाम (SAN) में संग्रहीत की जाएगी। (यह इंगित करने के लिए @BenSewards का धन्यवाद।)
निर्माण के बाद प्रमाणपत्र तुरंत IIS के किसी भी HTTPS बाइंडिंग (नीचे दिए गए निर्देश) में उपलब्ध होगा।
प्रमाण पत्र पर भरोसा रखें
नया प्रमाणपत्र विश्वास की किसी भी श्रृंखला का हिस्सा नहीं है और इसलिए इसे किसी भी ब्राउज़र द्वारा भरोसेमंद नहीं माना जाता है। इसे बदलने के लिए, हम आपके मशीन पर विश्वसनीय रूट सीए के लिए प्रमाण पत्र की दुकान पर प्रमाण पत्र की प्रतिलिपि बनाएँगे:
Mmc.exe खोलें, फ़ाइल → स्नैप-इन जोड़ें / निकालें → बाएं कॉलम में "प्रमाण पत्र" चुनें → जोड़ें → "कंप्यूटर खाता" चुनें → अगला → "स्थानीय कंप्यूटर ..." → समाप्त करें → ठीक है
बाएं कॉलम में "प्रमाणपत्र (स्थानीय कंप्यूटर) / व्यक्तिगत / प्रमाण पत्र" चुनें।
नए बनाए गए प्रमाण पत्र का पता लगाएं (विन 10 में कॉलम "दोस्ताना नाम" मदद कर सकता है)।
इस प्रमाणपत्र का चयन करें और इसे क्लिपबोर्ड पर कॉपी करने के लिए Ctrl-C दबाएं।
बाएं कॉलम में "प्रमाणपत्र (स्थानीय कंप्यूटर) / विश्वसनीय रूट सीए / प्रमाण पत्र" चुनें।
इस स्टोर पर अपना प्रमाणपत्र पेस्ट करने के लिए Ctrl-V को हिट करें।
प्रमाण पत्र विश्वसनीय रूट प्राधिकरण की सूची में दिखाई देना चाहिए और अब इसे विश्वसनीय माना जाता है।
IIS में उपयोग करें
अब आप IIS प्रबंधक पर जा सकते हैं, स्थानीय वेबसाइट के बाइंडिंग का चयन करें → Add → https → फॉर्म का होस्ट नाम दर्ज करें myname.dev.local
(आपका *.dev.local
प्रमाण पत्र केवल इसके लिए मान्य है ) और नए प्रमाणपत्र का चयन करें → ठीक है।
मेजबानों में जोड़ें
अपने होस्ट नाम को C: \ Windows \ System32 \ driver \ etc \ मेजबान में जोड़ें:
127.0.0.1 myname.dev.local
प्रसन्न
अब Chrome और IE को प्रमाणपत्र को भरोसेमंद मानना चाहिए और खुलने पर अपनी वेबसाइट को लोड करना चाहिए https://myname.dev.local
।
फ़ायरफ़ॉक्स अपना स्वयं का प्रमाणपत्र स्टोर रखता है। यहां अपना प्रमाणपत्र जोड़ने के लिए, आपको अपनी वेबसाइट को FF में खोलना होगा और अपवादों में जोड़ना होगा जब FF आपको प्रमाणपत्र के बारे में चेतावनी देता है।
एज ब्राउज़र के लिए और अधिक कार्रवाई की आवश्यकता हो सकती है (आगे नीचे देखें)।
प्रमाण पत्र का परीक्षण करें
अपने अनाज का परीक्षण करने के लिए, फ़ायरफ़ॉक्स आपकी सबसे अच्छी पसंद है। (मेरा विश्वास करो, मैं खुद क्रोम प्रशंसक हूं, लेकिन इस मामले में एफएफ बेहतर है।)
यहाँ कारण हैं:
- फ़ायरफ़ॉक्स अपने एसएसएल कैश का उपयोग करता है, जिसे शिफ्ट-रीलोड पर शुद्ध किया जाता है। इसलिए आपकी स्थानीय वेबसाइटों के समारोहों में कोई भी परिवर्तन एफएफ की चेतावनी में तुरंत प्रतिबिंबित होगा, जबकि अन्य ब्राउज़रों को विंडोज एसएसएल कैश के पुनरारंभ या मैन्युअल शुद्धिकरण की आवश्यकता हो सकती है।
- इसके अलावा एफएफ आपको आपके प्रमाणपत्र की वैधता की जांच करने के लिए कुछ मूल्यवान संकेत देता है: जब एफएफ अपना प्रमाणपत्र चेतावनी दिखाता है तो उन्नत पर क्लिक करें। FF आपको पाठ ब्लॉक की केंद्रीय लाइनों में एक या अधिक संभावित चेतावनियों के साथ एक छोटा पाठ ब्लॉक दिखाएगा:
प्रमाण पत्र पर भरोसा नहीं किया जाता है क्योंकि यह स्व-हस्ताक्षरित है।
यह चेतावनी सही है! जैसा कि ऊपर उल्लेख किया गया है, फ़ायरफ़ॉक्स विंडोज सर्टिफिकेट स्टोर का उपयोग नहीं करता है और केवल इस प्रमाणपत्र पर भरोसा करेगा, अगर आप इसके लिए एक अपवाद जोड़ते हैं। ऐसा करने का बटन चेतावनी के ठीक नीचे है।
प्रमाणपत्र नाम के लिए मान्य नहीं है ...
यह चेतावनी दिखाती है, कि आपने कुछ गलत किया है। आपके प्रमाणपत्र का (वाइल्डकार्ड) डोमेन आपकी वेबसाइट के डोमेन से मेल नहीं खाता है। समस्या को आपकी वेबसाइट के (उप) डोमेन को बदलकर या मेल खाने वाले नए प्रमाणपत्र जारी करके हल किया जाना चाहिए। वास्तव में आप एफएफ में एक अपवाद जोड़ सकते हैं, भले ही प्रमाण पत्र मेल न खाता हो, लेकिन आपको इस तरह के संयोजन के साथ क्रोम में एक हरे रंग का पैडलॉक प्रतीक कभी नहीं मिलेगा।
फ़ायरफ़ॉक्स इस जगह पर कई अन्य अच्छी और समझने योग्य प्रमाणित चेतावनियों को प्रदर्शित कर सकता है, जैसे कि समाप्त हो चुके सीरट्स, पुराने हस्ताक्षरित एल्गोरिदम वाले सेर्ट्स, आदि मुझे कोई अन्य ब्राउज़र नहीं मिला जिसने मुझे किसी भी समस्या को खत्म करने के लिए उस स्तर की प्रतिक्रिया दी।
कौन सा (उप-) डोमेन पैटर्न मुझे विकसित करने के लिए चुनना चाहिए?
उपरोक्त New-SelfSignCertificate कमांड में हमने वाइल्डकार्ड डोमेन का उपयोग किया *.dev.local
।
आप सोच सकते हैं: उपयोग क्यों नहीं *.local
?
सरल कारण: यह वाइल्डकार्ड डोमेन के रूप में अवैध है।
वाइल्डकार्ड प्रमाणपत्र में कम से कम दूसरे स्तर का डोमेन नाम होना चाहिए ।
तो, *.local
HTTP वेबसाइटों को विकसित करने के लिए फॉर्म के डोमेन अच्छे हैं। लेकिन HTTPS के लिए इतना नहीं है, क्योंकि आप प्रत्येक नए प्रोजेक्ट के लिए एक नया मिलान प्रमाणपत्र जारी करने के लिए मजबूर होंगे जो आप शुरू करते हैं।
महत्वपूर्ण पक्ष नोट:
- मान्य होस्ट डोमेन में केवल अक्षर a गर्त z, अंक, हाइफ़न और बिंदु हो सकते हैं। कोई अंडरस्कोर की अनुमति नहीं है! कुछ ब्राउज़र वास्तव में इस विवरण के बारे में चुप्पी साधे हुए हैं और आपको एक कठिन समय दे सकते हैं जब वे आपके डोमेन
motör_head.dev.local
को आपके वाइल्ड पैटर्न से मिलान करने से इनकार करते हैं*.dev.local
। आपके द्वारा स्विच करने पर वे अनुपालन करेंगे motoer-head.dev.local
।
- एक प्रमाणपत्र में एक वाइल्डकार्ड केवल एक लेबल (दो खंडों के बीच का खंड) एक डोमेन में मेल खाएगा, कभी भी अधिक नहीं।
*.dev.local
मैच myname.dev.local
लेकिन नहीं other.myname.dev.local
!
*.*.dev.local
प्रमाणपत्रों में बहु स्तरीय वाइल्डकार्ड ( ) संभव नहीं हैं। तो other.myname.dev.local
केवल फॉर्म के वाइल्डकार्ड द्वारा कवर किया जा सकता है *.myname.dev.local
। परिणामस्वरूप, आगे के स्तर के डोमेन भाग का उपयोग नहीं करना सबसे अच्छा है। अपनी सभी विविधताओं को तीसरे स्तर के हिस्से में रखें। इस तरह आपको अपने सभी देव स्थलों के लिए एक ही प्रमाण पत्र मिल जाएगा।
एज के साथ समस्या
यह वास्तव में स्व-हस्ताक्षरित प्रमाण पत्र के बारे में नहीं है, लेकिन फिर भी पूरी प्रक्रिया से संबंधित है:
उपरोक्त चरणों का पालन करने के बाद, जब आप खोलते हैं तो एज कोई भी सामग्री नहीं दिखा सकता है myname.dev.local
।
इसका कारण आधुनिक नेटवर्क के लिए विंडोज 10 के नेटवर्क प्रबंधन की एक विशेषता है, जिसे "नेटवर्क अलगाव" कहा जाता है।
उस समस्या को हल करने के लिए, प्रशासक विशेषाधिकारों के साथ कमांड प्रॉम्प्ट खोलें और एक बार निम्नलिखित कमांड दर्ज करें:
CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe
एज और नेटवर्क अलगाव के बारे में अधिक जानकारी यहाँ पाई जा सकती है:
https://blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/
makecert.exe
अपने पथ में होने के लिए Visual Studio 2010 कमांड प्रॉम्प्ट का उपयोग करना पड़ा । मुझे लगा कि प्रमाणपत्रों के लिए मैं अधिक सुरक्षित और उपयोग करूँगा-a SHA512 -len 8192
- इसे हमेशा के लिए उत्पन्न किया गया। और जैसा कि मुझे संदेह था, इसका शून्य प्रभाव था कि किस स्तर पर एन्क्रिप्शन IIS का उपयोग किया गया था। डिफ़ॉल्ट रूप से IIS 128-बिट का उपयोग करता है, आपको इसे बदलने के लिए समूह नीति सामान करना होगा। अन्य पाठकों के लिए आगे ध्यान दें: के बाद जादू की संख्या में परिवर्तन नहीं-eku
करते हैं, वे आवश्यक हैं।