विकास के लिए एक डोमेन नाम के लिए स्व-हस्ताक्षरित प्रमाण पत्र कैसे बनाएं?


123

मेरे पास है subdomain.example.comकि मैं विकास के उद्देश्यों के लिए उपयोग करता हूं। मेरे वेब एप्लिकेशन समाधान में एक वेब एपीआई आदि है, जिसे मुझे बाहरी प्रणालियों से कॉल करने की आवश्यकता है, इसलिए मैं लोकलहोस्ट का उपयोग नहीं कर रहा हूं।

मुझे अब एसएसएल के लिए परीक्षण करने की आवश्यकता है और मेरे subdomain.example.comविकास डोमेन नाम के लिए एक प्रमाण पत्र की आवश्यकता है ।

मैंने http://technet.microsoft.com/en-us/library/cc753127(v=ws.10).aspx में उल्लिखित एक स्व-हस्ताक्षरित प्रमाण पत्र बनाने की कोशिश की है , लेकिन यह प्रमाणपत्र केवल स्थानीयहोस्ट के लिए काम करता है। क्या यह प्रमाण पत्र मेरे उद्देश्य के लिए उपयोग किया जा सकता है या मुझे अपने विकास उपडोमेन के लिए स्व-हस्ताक्षरित बनाना होगा? अगर मुझे अपने विकास उपडोमेन के लिए स्व-हस्ताक्षरित प्रमाण पत्र बनाना है, तो मैं इसके लिए किस उपयोगिता या ऑनलाइन सेवा (फ्री) का उपयोग कर सकता हूं?

जवाबों:


133

IIS के स्व-हस्ताक्षरित प्रमाणपत्र सुविधा के साथ, आप प्रमाण पत्र के लिए सामान्य नाम (CN) सेट नहीं कर सकते हैं, और इसलिए आपकी उप डोमेन के लिए बाध्य प्रमाणपत्र नहीं बना सकते।

समस्या का एक तरीका है makecert.exe का उपयोग करना, जिसे .net 2.0 SDK के साथ बंडल किया गया है। मेरे सर्वर पर यह है:

C:\Program Files\Microsoft.Net\SDK\v2.0 64bit\Bin\makecert.exe

आप एक हस्ताक्षर प्राधिकारी बना सकते हैं और इसे स्थानीय माईचैन सर्टिफिकेट रिपॉजिटरी में स्टोर कर सकते हैं (ये कमांड एक प्रशासक खाते से या एक उन्नत कमांड प्रॉम्प्ट से चलाया जाना चाहिए):

makecert.exe -n "CN=My Company Development Root CA,O=My Company,
 OU=Development,L=Wallkill,S=NY,C=US" -pe -ss Root -sr LocalMachine
 -sky exchange -m 120 -a sha1 -len 2048 -r

फिर आप अपने उप-समूह के लिए एक प्रमाण पत्र बना सकते हैं और अपने नए प्राधिकारी द्वारा हस्ताक्षरित कर सकते हैं:

(ध्यान दें कि -इन पैरामीटर का मान उसी तरह होना चाहिए, जैसा कि ऊपर का प्राधिकरण आपके अधिकार को उत्पन्न करने के लिए उपयोग किया जाता है।)

makecert.exe -n "CN=subdomain.example.com" -pe -ss My -sr LocalMachine
 -sky exchange -m 120 -in "My Company Development Root CA" -is Root
 -ir LocalMachine -a sha1 -eku 1.3.6.1.5.5.7.3.1

आपका प्रमाण पत्र तब IIS प्रबंधक को आपकी साइट के लिए बाध्य होना चाहिए जैसा कि टॉम हॉल के पोस्ट में बताया गया है।

इस समाधान के लिए सभी ओड्स माइक ओ'ब्रायन के लिए अपने उत्कृष्ट ब्लॉग पोस्ट के लिए http://www.mikeobrien.net/blog/creating-self-signed-wildcard


8
मैं यह काम करने में सक्षम था। मुझे makecert.exeअपने पथ में होने के लिए Visual Studio 2010 कमांड प्रॉम्प्ट का उपयोग करना पड़ा । मुझे लगा कि प्रमाणपत्रों के लिए मैं अधिक सुरक्षित और उपयोग करूँगा -a SHA512 -len 8192- इसे हमेशा के लिए उत्पन्न किया गया। और जैसा कि मुझे संदेह था, इसका शून्य प्रभाव था कि किस स्तर पर एन्क्रिप्शन IIS का उपयोग किया गया था। डिफ़ॉल्ट रूप से IIS 128-बिट का उपयोग करता है, आपको इसे बदलने के लिए समूह नीति सामान करना होगा। अन्य पाठकों के लिए आगे ध्यान दें: के बाद जादू की संख्या में परिवर्तन नहीं -ekuकरते हैं, वे आवश्यक हैं।
BrainSlugs83

3
प्रशासनिक विशेषाधिकारों के साथ कमांड प्रॉम्प्ट से सभी ऊपर दिए गए आदेशों को चलाएं अन्यथा आपको "त्रुटि: सहेजें एन्कोडेड प्रमाणपत्र को विफल करने के लिए सहेजें => 0x5" संदेश मिलेगा।
जाइल्स रॉबर्ट्स

1
मैं विकास के लिए makecert.exe के साथ स्व-हस्ताक्षरित प्रमाण पत्र बनाते हुए एक शानदार लिंक साझा करना चाहूंगा । लिंक रूट प्रमाणपत्र, सर्वर प्रमाणपत्र और क्लाइंट प्रमाणपत्र बनाने के लिए चरण-दर-चरण दृष्टिकोण की व्याख्या करता है। साथ ही उन्हें इस्तेमाल करने के तरीके के बारे में भी बताया गया है।
विक्रम सिंह सैनी

3
क्रोम जैसे ब्राउजर्स की कमी शुरू हो गई है sha1। स्थानापन्न करें -a sha512और -len 2048दूसरे makecertआह्वान को जोड़ने पर विचार करें और सब कुछ ठीक होना चाहिए।
ओ। जोन्स

2
ध्यान दें कि यह अब विंडोज 10 में काम नहीं करता है (कम से कम जैसा कि ऊपर दिखाया गया है)। मुझे इसके बजाय पावरस्ले cmdlet का उपयोग करना पड़ा, जिसने बिना किसी समस्या के काम किया।
DVK

120

PowerShell का उपयोग करना

Windows 8.1 और Windows Server 2012 R2 (Windows PowerShell 4.0) से और ऊपर से, आप नए का उपयोग करके स्व-हस्ताक्षरित प्रमाणपत्र बना सकते हैं New-SelfSignedCertificate cmletlet :

उदाहरण:

New-SelfSignedCertificate -DnsName www.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName subdomain.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName *.mydomain.com -CertStoreLocation cert:\LocalMachine\My

IIS प्रबंधक का उपयोग करना

  1. IIS प्रबंधक लॉन्च करें
  2. IIS के अंतर्गत सर्वर स्तर पर, सर्वर प्रमाणपत्र का चयन करें
  3. कार्य के तहत दाईं ओर स्थित स्व-हस्ताक्षरित प्रमाणपत्र बनाएं चुनें
  4. जहां यह कहा गया है "संदर्भ के लिए एक उपयुक्त नाम में" प्रमाण पत्र के लिए एक अनुकूल नाम निर्दिष्ट करें।
    1. उदाहरण: www.domain.comयाsubdomain.domain.com
  5. फिर, बाईं ओर सूची से अपनी वेबसाइट का चयन करें
  6. दाहिने हाथ की ओर क्रियाओं के तहत बाइंडिंग का चयन करें
  7. एक नया HTTPS बाइंडिंग जोड़ें और आपके द्वारा बनाए गए प्रमाणपत्र का चयन करें (यदि आपका प्रमाणपत्र वाइल्डकार्ड प्रमाणपत्र है तो आपको एक होस्टनाम निर्दिष्ट करना होगा)
  8. ओके पर क्लिक करें और इसका परीक्षण करें।

7
PowerShell समाधान के लिए +1। त्वरित और आसान, और ऐसा करने के बाद, नया प्रमाणपत्र मेरे IIS प्रबंधक> कनेक्शन> साइट> [मेरे आवेदन]> संपादन बाइंडिंग> संपादित करें> एसएसएल प्रमाणपत्र ड्रॉपडाउन में दिखाई दिया।
जॉन श्नाइडर

3
उपरोक्त निर्देशों का पालन करते हुए, और फिर प्रमाण पत्र को देखा, निर्देशों ने CN फ़ील्ड को आबाद नहीं किया जो अभी भी लोकलहोस्ट नाम के लिए था।
daveD

7
बिल्कुल सही। ये गलत है! "दोस्ताना नाम" का सीएन से कोई लेना-देना नहीं है। मुझे नहीं पता कि इस उत्तर में इतने सारे बदलाव क्यों हैं?
c00000fd

25
यह बढ़ जाता है क्योंकि पॉवर्सशेल विधि वास्तव में काम कर रही है। (@DivineOps उत्तर देखें) यहाँ मैंने प्रयोग किया गया कमांड है: New-SelfSignedCertificate -FriendlyName *.mydomain.local -DnsName *.mydomain.local, localhost -CertStoreLocation Cert:\LocalMachine\Myयह व्यक्तिगत स्टोर में एक प्रमाण पत्र बनाता है। फिर, मैंने पहली बार किसी फ़ाइल को प्रमाण पत्र को निर्यात किया और फिर इसे IIS प्रबंधक (मेरे https बाइंडिंग के लिए उपयोग करने के लिए) और फिर MMC के माध्यम से ट्रस्टेड रूट CAs (ब्राउज़र चेतावनियों से बचने के लिए) के लिए दोनों को फिर से आयात किया।
एंटोन

3
-NotAfterविकल्प भी एक समय समाप्ति तिथि निर्दिष्ट करने के लिए उपयोगी है (इसके बिना, डिफ़ॉल्ट सिर्फ 1 साल है)। उदाहरण मैंने इस्तेमाल कियाNew-SelfSignedCertificate -DnsName *.mydomain.com -FriendlyName *.mydomain.com -NotAfter (Get-Date).AddYears(15) -CertStoreLocation cert:\LocalMachine\My
बेन अमादा

52

अपने विशिष्ट डोमेन के लिए नया प्रमाणपत्र बनाने के लिए:

Powershell ISE को व्यवस्थापक के रूप में खोलें, कमांड चलाएँ:

New-SelfSignedCertificate -DnsName *.mydomain.com, localhost -CertStoreLocation cert:\LocalMachine\My

नए प्रमाणपत्र पर भरोसा करने के लिए:

  • Mmc.exe खोलें
  • कंसोल रूट पर जाएं -> प्रमाण पत्र (स्थानीय कंप्यूटर) -> व्यक्तिगत
  • आपके द्वारा बनाए गए प्रमाणपत्र का चयन करें, राइट क्लिक करें -> सभी कार्य -> ​​निर्यात करें और .pfx फ़ाइल बनाने के लिए निर्यात विज़ार्ड का पालन करें।
  • कंसोल रूट -> प्रमाण पत्र -> विश्वसनीय रूट प्रमाणीकरण प्राधिकारी पर जाएं और नई .pfx फ़ाइल आयात करें

अपनी साइट पर प्रमाण पत्र को बांधने के लिए:

  • IIS प्रबंधक खोलें
  • अपनी साइट का चयन करें और सही फलक में संपादन साइट -> बाइंडिंग चुनें
  • सही होस्टनाम और नए प्रमाणपत्र के साथ नया https बाइंडिंग जोड़ें

2
यह केवल विंडोज 8.1 और विंडोज सर्वर 2012 R2 (विंडोज पॉवरशेल 4.0) या बाद में काम करता है, हालांकि आप इनमें से किसी एक ओएसएस में प्रमाण पत्र उत्पन्न कर सकते हैं और इसे बाद में किसी अन्य कंप्यूटर पर आयात कर सकते हैं (मैंने अभी-अभी SSRS के साथ इस प्रमाणपत्र का उपयोग करने के लिए ऐसा किया है Windows Server 2008 R2 में स्थापित)।
17

2
निर्यात और आयात के बजाय इसे विश्वसनीय रूट प्रमाणीकरण प्राधिकारी में कॉपी करने के लिए, आप सिर्फ कॉपी और पेस्ट कर सकते हैं
jk7

कॉपी / पेस्ट केवल उसी सर्वर पर काम करता है। आप उसी सर्वर पर व्यक्तिगत फ़ोल्डर से विश्वसनीय रूट प्रमाणन प्राधिकारी को प्रमाणपत्र भी ctrl-drag कर सकते हैं। यदि आप चाहते हैं कि कोई अन्य होस्ट बिना किसी चेतावनी के साइट तक पहुंचने में सक्षम हो, तो आपको इसे निर्यात करने की आवश्यकता होगी और उन्हें अपने स्थानीय TRCA में प्रमाण पत्र आयात करना होगा (आपको निजी कुंजी शामिल करने की आवश्यकता नहीं है)।
जेजेवॉल्फ

41

मुझे दिए गए उत्तरों और आगे के संसाधनों से बिट्स और टुकड़ों को जोड़कर विंडोज पर स्व-हस्ताक्षरित प्रमाण पत्र के माध्यम से अपना रास्ता बनाना था। यहाँ मेरा अपना है (और उम्मीद है कि पूरा) वॉक-थ्रू। आशा है कि यह आपको मेरे कुछ दर्दनाक सीखने की अवस्था से दूर कर देगा। इसमें संबंधित विषयों पर इनफ़ोस भी शामिल हैं जो जल्द ही या बाद में जब आप अपने स्वयं के सीट्स बनाते हैं तो पॉप अप करेंगे।

विंडोज 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?

सरल कारण: यह वाइल्डकार्ड डोमेन के रूप में अवैध है।
वाइल्डकार्ड प्रमाणपत्र में कम से कम दूसरे स्तर का डोमेन नाम होना चाहिए

तो, *.localHTTP वेबसाइटों को विकसित करने के लिए फॉर्म के डोमेन अच्छे हैं। लेकिन 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/


2
मैं यहाँ ध्यान देना चाहता हूँ कि पहले DNS नाम को सब्जेक्ट नाम के रूप में भी सहेजा जाता है, जिसे आप वाइल्ड कार्ड नहीं बनाना चाहते हैं।
20

@BenSewards: यह इंगित करने के लिए धन्यवाद, बेन। मैंने विषय / SAN क्षेत्र विवरण को शामिल करने के लिए उत्तर को अपडेट कर दिया है। क्या आपको SAN फ़ील्ड के बजाय विषय फ़ील्ड में वाइल्डकार्ड होस्टनाम होने में कोई समस्या दिखाई देती है?
जेपी

@ जेपी - यह मेरे लिए सर्वर पर स्थानीय रूप से काम करता है जहां स्व-हस्ताक्षरित प्रमाण पत्र बनाया गया था, लेकिन मेरे (क्लाइंट) मशीनों पर फ़ायरफ़ॉक्स या क्रोम के भीतर नहीं। मुझे ऐसा लगता है appname.dev has a security policy called HTTP Strict Transport Security (HSTS), which means that Firefox can only connect to it securely. You can’t add an exception to visit this site., जैसा कि यह बताता है, आपको ग्राहक के अपवाद को जोड़ने की अनुमति नहीं है, जो आपके निर्देश के विपरीत है। क्या यह SSL सेटिंग्स के संबंध में IIS के भीतर एक बुरा कॉन्फ़िगरेशन है, SSL की आवश्यकता है, और क्लाइंट प्रमाणपत्र विकल्प?
कोड मावरिक

@CodeMaverick: किसी भी संयोग से आपकी समस्या में कुछ विज्ञापन अवरोधक या एंटी वायरस सॉफ़्टवेयर शामिल हो सकते हैं? एक अन्य विकल्प यह हो सकता है कि आपके द्वारा उपयोग किए जाने वाले डोमेन नाम से मेल नहीं खाता। याद रखें कि प्रमाणपत्र के सीएन या सैन में * केवल प्रतिनिधित्व कर सकते हैं एक डोमेन नाम में खंड ( नहीं जाने वाले बिंदु होंगे)। तो CN *.mydomain.comएक मान्य प्रमाणपत्र हो सकता है me.mydomain.comलेकिन इसके लिए नहीं me.at.mydomain.com
जेपीसी

14

मैं उसी समस्या में भाग गया जब मैं SSL को IIS 8 पर होस्ट की गई परियोजना के लिए सक्षम करना चाहता था। आखिरकार मैंने जिस टूल का इस्तेमाल किया, वह OpenSSL था , कई दिनों के बाद makecert कमांड से लड़ रहा था। प्रमाण पत्र डेबियन में उत्पन्न होता है, लेकिन मैं इसे मूल रूप से आयात कर सकता था IIS 7 और 8।

अपने ओएस और इस कॉन्फ़िगरेशन फ़ाइल के साथ संगत ओपनएसएसएल डाउनलोड करें । कॉन्फ़िगरेशन फ़ाइल को OpenSSL के डिफ़ॉल्ट कॉन्फ़िगरेशन के रूप में सेट करें।

सबसे पहले हम प्रमाणन प्राधिकरण (सीए) की निजी कुंजी और प्रमाण पत्र तैयार करेंगे। यह प्रमाणपत्र प्रमाणपत्र अनुरोध (CSR) पर हस्ताक्षर करने के लिए है।

आपको इस प्रक्रिया में आवश्यक सभी फ़ील्ड पूरी करनी होंगी।

  1. openssl req -new -x509 -days 3650 -extensions v3_ca -keyout root-cakey.pem -out root-cacert.pem -newkey rsa:4096

आप इस तरह डिफ़ॉल्ट सेटिंग्स के साथ एक कॉन्फ़िगरेशन फ़ाइल बना सकते हैं: अब हम प्रमाणपत्र अनुरोध उत्पन्न करेंगे, जो कि प्रमाणन प्राधिकरणों को भेजी जाने वाली फ़ाइल है।

सामान्य नाम को आपकी साइट का डोमेन सेट करना चाहिए, उदाहरण के लिए: public.organization.com

  1. openssl req -new -nodes -out server-csr.pem -keyout server-key.pem -newkey rsa:4096

अब प्रमाणपत्र अनुरोध जनरेट किए गए CA प्रमाणपत्र के साथ हस्ताक्षरित है।

  1. openssl x509 -req -days 365 -CA root-cacert.pem -CAkey root-cakey.pem -CAcreateserial -in server-csr.pem -out server-cert.pem

उत्पन्न प्रमाणपत्र को .pfx फ़ाइल में निर्यात किया जाना चाहिए जिसे IIS में आयात किया जा सकता है।

  1. openssl pkcs12 -export -out server-cert.pfx -inkey server-key.pem -in server-cert.pem -certfile root-cacert.pem -name "Self Signed Server Certificate"

इस चरण में हम प्रमाणपत्र CA आयात करेंगे।

  1. आपके सर्वर में CA प्रमाणपत्र को विश्वसनीय रूट प्रमाणीकरण प्राधिकारी को आयात करना चाहिए, क्योंकि IIS आयात किए जाने वाले प्रमाणपत्र पर भरोसा कर सकता है। याद रखें कि IIS में आयात किए जाने वाले प्रमाणपत्र को CA के प्रमाण पत्र के साथ हस्ताक्षरित किया गया है।

    • कमांड प्रॉम्प्ट खोलें और mmc टाइप करें
    • फ़ाइल पर क्लिक करें
    • का चयन करें जोड़ें / में स्नैप निकालें ...
    • प्रमाण पत्र पर डबल क्लिक करें ।
    • चुनें कंप्यूटर खाता और अगला ->
    • चयन करें स्थानीय कंप्यूटर और समाप्त
    • ठीक है
    • पर जाएं प्रमाण पत्र -> विश्वसनीय रूट प्रमाणीकरण प्राधिकारी -> प्रमाण पत्र , पर rigth क्लिक प्रमाण पत्र और चुनें सभी टास्क -> आयात ...

यहाँ छवि विवरण दर्ज करें

  • अगला चुनें -> ब्राउज़ करें ...
  • Root-cacert.pem फ़ाइल का स्थान ब्राउज़ करने के लिए आपको सभी फ़ाइलों का चयन करना होगा ।
  • अगला पर क्लिक करें और निम्नलिखित स्टोर में सभी प्रमाणपत्र रखें : विश्वसनीय रूट प्रमाणीकरण प्राधिकारी
  • Next और Finish पर क्लिक करें

यहाँ छवि विवरण दर्ज करें

इस कदम के साथ, हमारे प्रमाणपत्र की प्रामाणिकता पर IIS विश्वास।

  1. अपने अंतिम चरण में हम IIS को प्रमाणपत्र आयात करेंगे और बाध्यकारी साइट को जोड़ेंगे।

    • इंटरनेट सूचना सेवा (IIS) प्रबंधक खोलें या कमांड प्रॉम्प्ट पर inetmgr टाइप करें और सर्वर प्रमाणपत्र पर जाएं
    • पर क्लिक करें आयात करें ...
    • वेब होस्टिंग पर .pfx फ़ाइल, पासफ़्रेज़ और सिलेक्ट सर्टिफ़िकेट स्टोर का पथ सेट करें ।

यहाँ छवि विवरण दर्ज करें

  • ओके पर क्लिक करें ।
  • अब IIS प्रबंधक पर अपनी साइट पर जाएं और बाइंडिंग का चयन करें ... और एक नया बंधन जोड़ें

  • बाध्यकारी के प्रकार के रूप में https का चयन करें और आपको आयातित प्रमाण पत्र देखने में सक्षम होना चाहिए।

  • ओके पर क्लिक करें और सब हो गया।

यहाँ छवि विवरण दर्ज करें


मैं एक स्व-हस्ताक्षरित प्रमाण पत्र के साथ लंबे समय तक समाप्ति चाहता था और विंडोज होस्ट पर makecert.exe के साथ विंडोज एसडीके उपलब्ध नहीं था। एक लिनक्स होस्ट और इस उत्तर ने समाधान प्रदान किया।
रिच

मुझे खुशी है कि आपने मेरा उत्तर उपयोगी पाया।
यूसुफ

Opensl कमांड में उस "public.organization.com" को कहाँ रखा जाए?
द वन

2

एक अन्य विकल्प एक स्व-हस्ताक्षरित प्रमाण पत्र बनाना है जो आपको प्रति वेबसाइट डोमेन नाम निर्दिष्ट करने की अनुमति देता है। इसका मतलब है कि आप इसे कई डोमेन नामों में उपयोग कर सकते हैं।

IIS प्रबंधक में

  1. मशीन का नाम नोड पर क्लिक करें
  2. सर्वर प्रमाणपत्र खोलें
  3. क्रिया पैनल में, 'स्व-निर्मित प्रमाणपत्र बनाएँ' चुनें
  4. 'एक अनुकूल नाम निर्दिष्ट करें ...' नाम इसे * देव (प्रकार सूची से 'व्यक्तिगत' चुनें)
  5. सहेजें

अब, IIS में अपनी वेबसाइट पर ...

  1. बाइंडिंग का प्रबंधन करें
  2. Https के लिए एक नया बाइंडिंग बनाएं
  3. सूची से अपना स्व-हस्ताक्षरित प्रमाणपत्र चुनें
  4. एक बार चयनित होने के बाद, डोमेन नाम बॉक्स सक्षम हो जाएगा और आप अपना डोमेन नाम इनपुट कर पाएंगे।

यहाँ छवि विवरण दर्ज करें


अब तक का सबसे उपयोगी उत्तर धन्यवाद। कम से कम विकास पर इसका उपयोग करने के लिए यह तेज है।
cabaji99

0

Jexus Manager का उपयोग करने के लिए एक स्व-हस्ताक्षरित प्रमाणपत्र बनाने का एक और आसान तरीका है,

जेक्सस प्रबंधक

  1. कनेक्शन पैनल में एक सर्वर नोड चुनें।
  2. मध्य पैनल में, प्रबंधन पृष्ठ खोलने के लिए सर्वर प्रमाण पत्र आइकन पर क्लिक करें।
  3. कार्रवाई पैनल के तहत, "स्व-हस्ताक्षरित प्रमाणपत्र जेनरेट करें ..." मेनू आइटम पर क्लिक करें।

https://www.jexusmanager.com/en/latest/tutorials/self-signed.html

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