2016-04-26 9 views
6

के लिए वैध परीक्षण एसएसएल प्रमाणपत्र तैयार करना मैं आईआईएस के साथ विकास पर्यावरण में एसएसएल कनेक्शन का परीक्षण करना चाहता हूं। इसके लिए मुझे मशीन स्टोर में स्थापित एक स्व-हस्ताक्षरित रूट प्रमाणपत्र को क्रेट करने की आवश्यकता है, और एक और प्रमाण पत्र जो आईआईएस में स्थापित करने के लिए रूट प्रमाणपत्र से हस्ताक्षरित हो।आईआईएस

makecert के साथ इसे अब हटा दिया गया है, इसलिए मैं सोच रहा हूं कि इसे पावरहेल और New-SelfSignedCertificate कमांड के साथ कैसे किया जाए। स्व-हस्ताक्षरित IIS में सीधे प्रमाणित काम नहीं करता है, ब्राउज़र के बाद से और WCF उन्हें अवैध मानता है का उपयोग करते हुए:

बोनस अंक अगर आप कुंजी उपयोग की सेटिंग प्राप्त सही :-)

नोट।

# create the self signed root certificate 
makecert -n "CN=root.lan" -r -sv root.pvk root.cer 

# create the certificate for IIS that gets signed with the root certificate 
makecert -sk "Local Certificate" -iv root.pvk -n "CN=localhost" -ic root.cer -sr localmachine -ss my -sky exchange -pe 

# convert to other formats 
cert2spc localhost.cer localhost.spc 
pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx 
+0

'MakeCert.exe' पर्याप्त है यदि आप केवल आरएसए का उपयोग करते हैं, लेकिन' MakeCert.exe' के कुछ अतिरिक्त विकल्पों का उपयोग करना बेहतर है। 'नया स्व-हस्ताक्षरित प्रमाणपत्र' आपको कोई लाभ नहीं मिलेगा। इंटरनेट पर उपलब्ध अन्य पावरहेल मॉड्यूल बेहतर हो सकते हैं। आप या तो आरएसए या एल्लिप्टिक वक्र प्रमाण पत्र बनाने के लिए 'MakeCert.exe' के बजाय [OpenSSL.exe] (https://www.openssl.org/) का उपयोग कर सकते हैं, जिसे आप आईआईएस पर उपयोग कर सकते हैं।यदि आपका आईआईएस सर्वर इंटरनेट (पोर्ट 80) पर उपलब्ध है तो आप मुफ्त वास्तविक SSL प्रमाणपत्र प्राप्त करने के लिए लेट्स एन्क्रिप्ट का उपयोग कर सकते हैं और ग्राहकों को विश्वसनीय "रूट" में आपके "सीए" प्रमाण पत्र को स्थापित करने की आवश्यकता नहीं होगी। – Oleg

+1

प्रश्न किसी कारण से 'न्यू-सेल्फसाइन प्रमाण पत्र' का उपयोग करना था। मैं 'मेकर्ट' या 'ओपनएसएसएल' का उपयोग नहीं करना चाहता हूं। – MovGP0

+0

बस प्रारंभ शक्तिशक्ति का उपयोग करें और 'नया-स्व-हस्ताक्षरित प्रमाणपत्र -?' का उपयोग करें और 'नई-स्व-हस्ताक्षरित प्रमाणपत्र-उदाहरण प्राप्त करें'। संभावनाएं विंडोज संस्करण पर निर्भर करती हैं, जिनका आप उपयोग करते हैं। Https://technet.microsoft.com/en-us/library/hh848633.aspx की तुलना https://technet.microsoft.com/en-us/library/hh848633(v=wps.630).aspx – Oleg

उत्तर

5

जो विंडोज 10 पर शामिल New-SelfSignedCertificate के नए संस्करण,, वर्णन किया गया है here:


संदर्भ के लिए है, तो यहां makecert साथ यह करने के लिए है। कुछ अतिरिक्त जानकारी प्राप्त करने के लिए New-SelfSignedCertificate -? और get-help New-SelfSignedCertificate -examples का उपयोग कर सकते हैं।

प्रलेखन और उदाहरण पर्याप्त दो प्रमाण पत्र बनाने के लिए अभी भी स्पष्ट नहीं लगता किए जा सकेंगे:

  • एक स्व-हस्ताक्षरित प्रमाणपत्र, जो आपके उदाहरण
  • दूसरे SSL प्रमाणपत्र से CA प्रमाणपत्र के रूप में इस्तेमाल किया जाएगा, जो पहले प्रमाण पत्र के साथ हस्ताक्षर किए।

कार्यान्वयन निम्नलिखित हो सकता है (मैं कई पंक्तियों में विकल्प के नीचे लिखा था केवल अधिक पठनीय पाठ बनाने के लिए):

New-SelfSignedCertificate -HashAlgorithm sha384 -KeyAlgorithm RSA -KeyLength 4096 
    -Subject "CN=My Test (PowerShell) Root Authority,O=OK soft GmbH,C=DE" 
    -KeyUsage DigitalSignature,CertSign -NotAfter (get-date).AddYears(10) 
    -CertStoreLocation "Cert:\CurrentUser\My" -Type Custom 

उत्पादन

Directory: Microsoft.PowerShell.Security\Certificate::CurrentUser\My 


Thumbprint        Subject 
----------        ------- 
B7DE93CB88E99B01D166A986F7BF2D82A0E541FF CN=My Test (PowerShell) Root Authority, O=OK soft GmbH, C=DE 

की तरह दिखाई देगा मूल्य B7DE93CB88E99B01D166A986F7BF2D82A0E541FF हस्ताक्षर के लिए प्रमाणपत्र के उपयोग के लिए महत्वपूर्ण है। आप मूल्य भूल जाते हैं आप वर्तमान उपयोगकर्ता के मेरे दुकान पर प्रमाणपत्रों को प्रदर्शित करने के लिए सीएन नाम

dir cert:\CurrentUser\My | where Subject -Like "CN=My Test (PowerShell)*" 

द्वारा या उपयोग certutil.exe -user -store My उसे ढूंढ सकते हैं।

SSL प्रमाणपत्र बनाने के लिए और पहले से बनाए गए प्रमाण पत्र एक उदाहरण के लिए कर सकते हैं सम्मान के साथ इस पर हस्ताक्षर करने के लिए निम्न

New-SelfSignedCertificate -Type Custom -Subject "CN=ok01.no-ip.org" 
    -HashAlgorithm sha256 -KeyAlgorithm RSA -KeyLength 2048 
    -KeyUsage KeyEncipherment,DigitalSignature 
    -CertStoreLocation "cert:\LocalMachine\My" 
    -Signer cert:\CurrentUser\My\B7DE93CB88E99B01D166A986F7BF2D82A0E541FF 
    -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2","2.5.29.17={text}DNS=ok01.no-ip.org&DNS=ok01.fritz.box") 

मुझे ऐसा लगता है कि अंतिम प्रमाणपत्र की आवश्यकता सभी गुण होगा। यह स्पष्ट है कि उपर्युक्त पैरामीटर से कई लोगों के मानों में केवल उदाहरण हैं जो आपको अपनी आवश्यकताओं के आधार पर संशोधित करना है। मैं यहां कुछ अन्य सामान्य कदमों का वर्णन नहीं करता जैसे विश्वसनीय रूट में रूट प्रमाणपत्र आयात करना, प्रमाण पत्र निर्यात करना आदि। कदम आपके मुख्य प्रश्न का psrt नहीं हैं।

+0

आपको बहुत बहुत धन्यवाद :-) – MovGP0

+1

@ MovGP0: आपका स्वागत है! मैं अभी भी आपको लेट्स एन्क्रिप्ट में देखने के लिए अनुशंसा करता हूं। [यहां] देखें (http://weblog.west-wind.com/posts/2016/Feb/22/Using-Lets-Encrypt-with-IIS-on- विन्डोज़)। मैं व्यक्तिगत रूप से [letsencrypt-win-simple] का उपयोग करता हूं (https://github.com/Lone-Coder/letsencrypt-win-simple) एसएसएल प्रमाण पत्र बनाने के लिए Let's Encrypt प्राधिकरण का उपयोग करके सभी कंप्यूटरों पर भरोसा किया जाता है। – Oleg

+1

मुझे सीए प्रमाण के लिए '-केयूयूज डिजिटल सिग्नेचर, सर्टसाइन' निर्दिष्ट करने की आवश्यकता है, अन्यथा वेब ब्राउज़र 'बच्चे' प्रमाण पत्र को मान्य नहीं करेंगे। –