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


133

मैं विस्तृत चरणों के माध्यम से चला गया हूं कि आप लोकलहोस्ट पर https / SSL का उपयोग कैसे करते हैं? लेकिन यह मेरे मशीन के नाम के लिए एक स्व-हस्ताक्षरित प्रमाणपत्र सेट करता है, और जब इसे https: // localhost के माध्यम से ब्राउज़ किया जाता है तो मुझे IE चेतावनी प्राप्त होती है।

क्या इस चेतावनी से बचने के लिए "लोकलहोस्ट" के लिए स्व-हस्ताक्षरित प्रमाणपत्र बनाने का कोई तरीका है?


क्या आपने CA के रूप में प्रमाणपत्र स्थापित किया है?
vcsjones

मैंने Win7 के तहत IIS में एक स्व-हस्ताक्षरित प्रमाणपत्र स्थापित करने की प्रक्रिया का पालन किया। लेकिन यह "mymachinename" के लिए प्रमाण पत्र बनाता है, और मुझे "लोकलहोस्ट" के लिए एक की आवश्यकता है।
क्रिस

1
नमस्ते! ऑर्क के उत्तर को मुख्य उत्तर के रूप में सेट करने पर विचार करें क्योंकि makecert को हटा दिया गया है। उत्तर के लिए लिंक: stackoverflow.com/a/44164653/1461602
Tormod Haugene

जवाबों:


81

यद्यपि यह पोस्ट विंडोज के लिए टैग की गई है, यह ओएस एक्स पर प्रासंगिक सवाल है कि मैंने कहीं और के लिए जवाब नहीं देखा है। यहाँ OS X पर लोकलहोस्ट के लिए एक स्व-हस्ताक्षरित प्रमाणपत्र बनाने के चरण दिए गए हैं :

# Use 'localhost' for the 'Common name'
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt

# Add the cert to your keychain
open localhost.crt

में Keychain Access, इस नए स्थानीय होस्ट प्रमाणपत्र पर डबल क्लिक करें। "ट्रस्ट" के बगल में स्थित तीर का विस्तार करें और "हमेशा विश्वास रखें" चुनें। क्रोम और सफारी को अब इस प्रमाणपत्र पर भरोसा करना चाहिए। उदाहरण के लिए, यदि आप नोड के साथ इस प्रमाणपत्र का उपयोग करना चाहते हैं।

var options = {
    key: fs.readFileSync('/path/to/localhost.key').toString(),
    cert: fs.readFileSync('/path/to/localhost.crt').toString(),
    ciphers: 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384',
    honorCipherOrder: true,
    secureProtocol: 'TLSv1_2_method'
};

var server = require('https').createServer(options, app);

2
पहला कमांड, ssh-keygenअनावश्यक है क्योंकि ओपनस् कमांड भी एक नई कुंजी बना रहा है (और ssh द्वारा बनाई गई एक को ओवरराइट कर रहा है)।
फेलिक्स सपरेली

7
इसके अलावा, आप पूरी तरह से जोड़कर प्रक्रिया को स्वचालित कर सकते हैं -subj '/CN=localhost'करने के लिए opensslतर्क।
फेलिक्स सपरेली

8
OS X को कमांड लाइन से इधर-उधर क्लिक करने के बजाय उस पर भरोसा करने के लिए, आप कर सकते हैं:sudo security add-trusted-cert -p ssl -d -r trustRoot -k ~/Library/Keychains/login.keychain localhost.crt
philfreo

1
लिनक्स के लिए भी प्रासंगिक है। बहुत बहुत धन्यवाद।
मार्सेल

1
मैंने इन सभी चरणों का पालन किया है और मुझे ERR_SSL_VERSION_OR_CIPHER_MISMATCHChrome 60 में मिल रहा है और सफारी 10.1.2 को यह पसंद नहीं है।
स्टाइलफ्ले

61

चूँकि इस प्रश्न का टैग लगाया गया है IISऔर मुझे इस बारे में कोई अच्छा उत्तर नहीं मिल रहा है कि कैसे एक विश्वसनीय प्रमाणपत्र प्राप्त करने के लिए मैं इसके बारे में अपने 2 सेंट देगा:

पहले व्यवस्थापक के रूप में PowerShell में @AuriRahimzadeh से कमांड का उपयोग करें:

New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"

यह अच्छा है लेकिन प्रमाण पत्र पर भरोसा नहीं किया जाता है और इसके परिणामस्वरूप निम्न त्रुटि होगी। यह इसलिए है क्योंकि यह स्थापित नहीं है Trusted Root Certification Authorities

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

इसे शुरू करके हल करें mmc.exe

फिर जाएं:

फ़ाइल -> स्नैप-इन जोड़ें या निकालें -> प्रमाण पत्र -> जोड़ें -> कंप्यूटर खाता -> स्थानीय कंप्यूटर। समाप्त पर क्लिक करें।

Personalफ़ोल्डर का विस्तार करें और आप अपना localhostप्रमाणपत्र देखेंगे :

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

प्रमाणपत्र को Trusted Root Certification Authorities - Certificatesफ़ोल्डर में कॉपी करें ।

अंतिम चरण को खोलना है Internet Information Services (IIS) Managerया बस inetmgr.exe। वहां से अपनी साइट पर जाएं, चयन करें Bindings...और Add...या Edit...। सेट करें httpsऔर ड्रॉप डाउन से अपना प्रमाणपत्र चुनें।

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

अब आपके प्रमाणपत्र पर भरोसा किया गया है:

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


9
यह स्वीकृत उत्तर होना चाहिए! यह काम करता हैं! यदि आपने स्थानीयहोस्ट और विश्वसनीय प्रमाण पत्र के साथ गड़बड़ कर दी है। सभी पुराने लोकलहोस्ट सर्टिफिकेट (एमएमसी कंसोल और आईआईएस (शीर्ष प्रबंधित सर्वर) के माध्यम से निकालना सुनिश्चित करें)
टुआन जिन

धन्यवाद! इस विषय पर बहुत सारे एसओ उत्तर और ब्लॉग पोस्ट हैं, लेकिन प्रमाण पत्र ट्रस्ट के मुद्दों के बारे में बहुत कम बातचीत होती है। युक्ति: शायद आपको यह समझाना चाहिए कि आप डिफ़ॉल्ट SSL पोर्ट 443 का उपयोग क्यों नहीं करते हैं? मुझे लगता है कि यह इसलिए है क्योंकि यह बंदरगाह अक्सर किसी अन्य प्रक्रिया द्वारा लिया जाता है।
हॉफज

वास्तव में अच्छा जवाब, और 2020 के रूप में IIS पर अच्छी तरह से काम करता है। बहुत बहुत धन्यवाद!
एलेसैंड्रोक

मेजबानों फ़ाइल में उपनामों के लिए भी काम करता है
ज़ीफ़ जूल

52

आप नए-सेल्फसिग्नेट सर्टिफिकेट cmdlet के साथ एक स्व-हस्ताक्षरित प्रमाणपत्र बनाने के लिए PowerShell का उपयोग कर सकते हैं:

New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"

नोट: makecert.exe पदावनत है।

Cmdlet संदर्भ: https://technet.microsoft.com/itpro/powershell/windows/pkiclient/new-selfsigncertificate


यह 2017 के रूप में उत्तर होना चाहिए।
टॉरमॉड ह्यूजेन

1
उन लोगों के लिए जो परिणामी प्रमाण पत्र को स्थापित करने के बारे में नहीं जानते हैं और इस वीडियो में दिए गए चरणों का पालन करते हैं, यह मेरे लिए काम करता है! youtube.com/watch?v=y4uKPUFmSZ0
एरिक ब्राउन - Cal

6
कुंजी और crt फ़ाइलें कहाँ संग्रहीत होती हैं?
woojoo666

1
@ woojoo666 -KeyLocationध्वज के साथ आप स्थान निर्दिष्ट कर सकते हैं।
हमीद

46

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

SelfSSL का एक नमूना उपयोग कुछ इस तरह दिखेगा:

SelfSSL /N:CN=YourWebsite.com / V: 1000 / S: 2

SelfSSL /? स्पष्टीकरण के साथ मापदंडों की एक सूची प्रदान करेगा।


RobBagby.com के लेख ने मेरे लिए पूरी तरह से काम किया। अच्छा लगता है हेनरी।
cymorg

मेगा! उस वीडियो की गुणवत्ता खराब है, लेकिन उसकी हर जरूरत है।
टोनको

2
डकैती की साइट का लिंक मर चुका है। CodeCowboyOrg द्वारा 2 उच्च गुणवत्ता वाले यूट्यूब ट्यूटोरियल के लिए मेरा उत्तर देखें
मूसा

Robbagby.com पर लेख के वेबैक संग्रह से लिंक करने का संपादित उत्तर।
प्रोमेथियस

23

यदि आप एक स्व-हस्ताक्षरित प्रमाण पत्र बनाने की कोशिश कर रहे हैं जो आपको जाने देता है http://localhost/mysite तो यहाँ इसे बनाने का एक तरीका है

makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.1 -sv localhost.pvk localhost.cer
cert2spc localhost.cer localhost.spc
pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx

से http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/32bc5a61-1f7b-4545-a514-a11652f11200


2
मेरा प्रमाणपत्र कहां गया: o इसकी C: \ Windows \ system32 में नहीं
EaterOfCode

2
वैसे, makecert.exe उपकरण का उपयोग भविष्य के पाठकों के लिए Visual Studio कमांड प्रॉम्प्ट के माध्यम से किया जाता है। आप इंटरनेट सूचना सेवाओं (IIS) रिसोर्स किट टूल्स का उपयोग कर सकते हैं और SelfSSL 1.0 स्थापित कर सकते हैं। microsoft.com/downloads/en/…
atconway

3
जबकि त्वरित उत्तर महान हैं, वे हमेशा मदद नहीं करते हैं। "प्रमाणपत्र को एसएसएल सर्वर प्रमाणपत्र के रूप में उपयोग नहीं किया जा सकता है" आईआईएस 7 में मुझे देखने में त्रुटि है। Op ने ब्राउज़र चेतावनियों का भी उल्लेख किया था और "मैं एक प्रमाण पत्र कैसे बनाऊं" नहीं?
cmroanirgo

आप cert2spc कदम को छोड़ सकते हैं कारण पैरामीटर pvk2pfx -spc दोनों स्वीकार करता है .spc और .cer
abatishchev

1
@EaterOfCode मेरा C: \ Windows \ SysWOW64 में था
बे सोला

10

मैं स्व-हस्ताक्षरित-सीरीज़ बनाने के लिए प्लुरलिट्स टूल को पुनः प्राप्त करूंगा: http://blog.pluralsight.com/selfcert-create-a-self-signed-certificate-interactively-gui-or-programmatically-in-net

अपना प्रमाणपत्र .pfx के रूप में बनाएं और इसे IIS में आयात करें। और इसे एक विश्वसनीय रूट प्रमाणित प्राधिकरण के रूप में जोड़ें।


1
PowerShell "जादू" और अन्य सामान की कोशिश करने के साथ चारों ओर फड़फड़ाहट के बाद, जो अभी काम नहीं किया - प्लुरल्टाइट के उपकरण ने 30 सेकंड के फ्लैट में मेरे लिए एक काम करने वाली स्क्रिप्ट तैयार की, और इसमें पिज्जा खाने का समय भी शामिल है (+ डाउनलोड) उपकरण निकालें, मेरा मतलब है)। जैसा कि मैं अभी भी इस पुराने लैपटॉप पर विंडोज 7 चला रहा हूं - यह मेरे लिए एकदम सही समाधान था, धन्यवाद!
Ade

1

हां और ना। स्वहस्ताक्षरित प्रमाणपत्रों से उस चेतावनी संदेश का परिणाम मिलता है क्योंकि प्रमाण पत्र किसी विश्वसनीय प्रमाणपत्र प्राधिकरण द्वारा हस्ताक्षरित नहीं था। कुछ विकल्प हैं जिन्हें आप अपने स्थानीय मशीन पर इस चेतावनी को हटाने के लिए विचार कर सकते हैं। विवरण के लिए इस प्रश्न के उच्चतम रैंक वाले उत्तर देखें:

स्वयं हस्ताक्षरित प्रमाण पत्र स्वीकार करने के लिए मुझे इंटरनेट एक्सप्लोरर 8 प्राप्त करने के लिए क्या करने की आवश्यकता है?

उम्मीद है की यह मदद करेगा!


संपादित करें:

क्षमा करें, मुझे शुरू में पता नहीं था कि आप लोकलहोस्ट के लिए विवश थे। आप नीचे दिए गए लिंक पर दिए गए निर्देशों का पालन करने का प्रयास कर सकते हैं "सही सामान्य नाम के साथ एक स्व हस्ताक्षरित प्रमाण पत्र उत्पन्न करें"।

http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-in-iis-7.html


नहीं, चेतावनी संदेश है क्योंकि URL ( लोकलहोस्ट ) प्रमाणित नाम से मेल नहीं खाता है, जो मशीन के नाम से जारी किया गया है। अगर मैं mymachinename में स्विच करता हूं तो मुझे त्रुटि नहीं मिलती है। दुर्भाग्य से, मुझे स्थानीयहोस्ट का उपयोग करना है और उन कारणों के लिए मशीन का नाम नहीं है जो प्रश्न को प्रभावित नहीं करते हैं।
क्रिस


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