IIS 7.0 - SSL प्रमाणपत्र - नवीनीकरण या नया?


13

मेरा एक एसएसएल प्रमाणपत्र (केवल साधारण डोमेन सत्यापन) विंडोज़ 2003 आईआईएस 7.0 सर्वर पर समाप्त होने वाला है।

मुझे एक अन्य विक्रेता से बेहतर प्रस्ताव मिला, और जिन लोगों ने मूल रूप से मेरा प्रमाण पत्र जारी किया था, वे कम कीमतों पर बातचीत नहीं करना चाहते हैं।

वैसे भी - IIS में प्रमाण पत्र विज़ार्ड को गर्त में ले जाने के लिए, मेरे पास "नवीनीकरण" या "अनइंस्टॉल" करने का विकल्प है और फिर एक नया प्रमाणपत्र स्थापित करें।

तो - क्या मैं प्रमाणपत्र अनुरोध बनाने और नए विक्रेता को इसे पास करने के लिए "नवीनीकरण" विकल्प का उपयोग कर सकता हूं, या मुझे "नया" अनुरोध के साथ शुरुआत करने की आवश्यकता है? क्या यह नए विक्रेता के लिए मायने रखेगा कि पिछला प्रमाण पत्र किसी अन्य हस्ताक्षरकर्ता द्वारा जारी किया गया था?

समस्या यह है, कि मैं पुराने सर्टिफिकेट को हटाने और नया CSR बनाने के कारण सर्वर (कम से कम सुरक्षित हिस्सा) को रोकना नहीं चाहता, और नए सर्टिफिकेट के इंस्टाल होने का इंतजार करना चाहिए।

या, पुराने प्रमाणपत्र को हटाए बिना एक नया सीएसआर तैयार करने का विकल्प है?

जवाबों:


7

आपको केवल IIS 6.0 के साथ एक अस्थायी वेबसाइट बनाने की आवश्यकता है। IIS 7.0 आपको एक बार में कई लंबित अनुरोध बनाने की अनुमति देता है।

IIS 7.0 में वास्तव में एक बग है जो एक बहुत बड़ी कुंजी के साथ CSR उत्पन्न करने के लिए नवीनीकरण फ़ंक्शन का कारण बनता है (जो आप चाहते हैं कि तुलना में बहुत बड़ा है)। इस वजह से, यह अनुशंसा की जाती है कि आप नवीनीकरण विकल्प का चयन करने के बजाय एक नया लंबित अनुरोध बनाएं। एक बार स्थापित होने के बाद आप बस वेबसाइट पर एसएसएल बाइंडिंग को बदलते हैं और आपके पास कोई डाउनटाइम नहीं होगा। यह आपको नए सिरे से हर बार एक नई कुंजी उत्पन्न करने की अनुमति देता है जो सुरक्षा को बढ़ाता है।

प्रमाणपत्र प्रदाता (CA) इस बात की परवाह नहीं करता है कि आप नए विकल्प या नवीनीकरण विकल्प का उपयोग करते हैं या आप विकल्प का उपयोग कर सकते हैं या नहीं, आप उसी CA के साथ रह रहे हैं या नए से ऑर्डर कर रहे हैं।


7

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

IIS को उड़ाए बिना एक नया अनुरोध उत्पन्न करने के लिए

आप प्रमाण पत्र अनुरोध मैन्युअल रूप से बना सकते हैं और जमा कर सकते हैं। एक बार जब आप नया प्रमाणपत्र प्राप्त कर लेते हैं, तो आप उस प्रमाणपत्र को स्विच कर सकते हैं जिसे IIS7 खोज रहा है। मैन्युअल रूप से एक वेब सर्वर एसएसएल प्रमाणपत्र कैसे बनाएं

प्रक्रिया का सरल सार यह है कि आप आवश्यक जानकारी के साथ एक inf फ़ाइल बनाएंगे, चलाएँ certreq -new file.inf file.req। एक बार जब आपके पास अनुरोध फ़ाइल आ जाती है, तो आप उसे अपना प्रमाणपत्र जारी करना चाहते हैं, जिसे आप अपने प्रमाण पत्र जारी करना चाहते हैं, फिर वह सार्वजनिक कुंजी स्वीकार करें जो वे आपको कमांड के साथ भेजते हैं।certreq -accept file-from-ca.req

उदाहरण request.inf

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=fully.qualified.domain.name, OU=Organizational Unit, O=Company, L=City, S=State, C=Country"
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = FALSE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
FriendlyName = ""

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[RequestAttributes]
CertificateTemplate = WebServer

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=&"
_continue_ = "DNS="

उपरोक्त उदाहरण inf एक है जिसका मैं आंतरिक रूप से अपने सीए के लिए उपयोग करता हूं लेकिन अधिकांश वातावरणों के लिए काम करने के लिए अनुकूलित किया जा सकता है। Exportableयदि आप अपनी कुंजी संग्रहीत करना चाहते हैं, तो आप TRUE पर सेट कर सकते हैं। यह FriendlyNameपूरी तरह से वैकल्पिक है और Extensionsअनुभाग वैकल्पिक DNS नामों (विषय वैकल्पिक नामों) का उपयोग करने के लिए है।

SAN प्रविष्टि का एक उदाहरण होगा:

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com&"
_continue_ = "DNS=www.example.com&"
_continue_ = "DNS=secure.example.com"

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

प्रक्रिया

एक बार जब आपके पास उपरोक्त जानकारी बच जाती है (मुझे पता है कि यह बहुत कुछ है)। इन कदमों का अनुसरण करें:

  1. एक कमांड प्रॉम्प्ट खोलें और उस डायरेक्टरी में सीडी लगाएं जहां आपने उपरोक्त इन्फैक्शन को बचाया है।
  2. Daud certreq -new above.inf request.req
  3. अपने CA को request.req फ़ाइल भेजें। वे इसे संसाधित करेंगे और इसे स्वीकृत / अस्वीकृत करेंगे।
  4. जब वे इसे अनुमोदित करते हैं, तो उन्हें आपको अपनी सार्वजनिक कुंजी को .cer फ़ाइल में वापस भेजना चाहिए।
  5. certreq -accept file-from-ca.cerकुंजी सेट करना समाप्त करने के लिए चलाएँ ।

सौभाग्य!

संपादित करें

सर्टिफिकेट के लिए पूर्ण सिंटैक्स और inf फ़ाइल परिशिष्ट 3 पर पाया जा सकता है : Certreq.exe सिंटैक्स (Windows Server 2003 SP1)FriendlyNameऔर HashAlgorithmकेवल सर्वर 2008 (और आर 2) कर रहे हैं। आप कमांड को चलाकर certutil -csplistऔर आउटपुट को देखकर समर्थित क्रिप्टोग्राफ़िक प्रदाताओं की सूची देख सकते हैं । वर्तमान Windows 2003 SP2 बॉक्स में "Microsoft RSA SChannel Cryptographic प्रदाता" उपलब्ध प्रदाता के रूप में सूचीबद्ध होता है, ताकि यह सुनिश्चित हो सके कि आपकी फ़ाइल में उद्धरण ठीक से सेट हैं और यह प्रविष्टि केवल एक पंक्ति (कोई रैपिंग या मल्टी-लाइन) पर नहीं है।

आप प्रदातानाम को प्रदाता के रूप में भी बदल सकते हैं और आउटपुट द्वारा प्रदान की गई संख्या का उपयोग कर सकते हैं certreq -csplist

इस मामले में मुझे निम्नलिखित आउटपुट मिलते हैं:

Provider Name: Microsoft RSA SChannel Cryptographic Provider
Provider Type: 12

तो मैं या तो उपयोग कर सकते हैं

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"

या

ProviderType = 12

धन्यवाद। मैं इसे मैन्युअल रूप से कैसे तैयार करूं?
सनी

इसके अलावा - अभी भी लंबित प्रश्न - क्या यह "नवीनीकरण" के लिए मायने रखता है कि प्रमाण पत्र एक नए विक्रेता द्वारा जारी किया जाएगा?
सनी

जहां तक ​​मुझे पता है कि एक नवीनीकरण के लिए आपको एक ही सार्वजनिक और निजी कुंजी रखने के लिए एक ही जारी करने वाले CA को ताज़ा प्रमाण पत्र भेजने की आवश्यकता होती है। एक अलग CA में साइन इन करने के लिए एक अलग कुंजी सेट होगा, और इसलिए आपकी सार्वजनिक / निजी कुंजी जोड़ी अलग होगी।
जोशुआ

यहोशू, यह रिपोर्ट करता है: प्रमाणपत्र अनुरोध प्रोसेसर: डेटा अमान्य है। 0x8007000d (WIN32: 13) mycert.inf (HashAl एल्गोरिदम = "SHA256")। क्या आपको यकीन है कि यह काम करना चाहिए? मूल में। आपके द्वारा लिंक किया गया लेख, ऐसी कोई सेटिंग नहीं है।
धूप

मैंने HashAlgorithm और FriendlyName सेटिंग्स को हटा दिया (जैसा कि उनके बारे में शिकायत की गई थी) और मुझे नहीं मिला: प्रमाणपत्र अनुरोध प्रोसेसर: प्रदाता प्रकार पंजीकृत मूल्य से मेल नहीं खाता। 0x8009001b (-2146893797)। बहुत बुरा।
सनी

1

ठीक है, अपने स्वयं के प्रश्न का आंशिक रूप से उत्तर देने के लिए - मौजूदा एक को हटाने के बिना एक नया प्रमाण पत्र बनाने / उपयोग करने का हिस्सा (यानी सर्वर को बंद किए बिना), मुझे कोमोडो वेबसाइट पर एक अच्छा विवरण मिला - मूल रूप से मुझे एक "अस्थायी" वेबसाइट बनाने की आवश्यकता है सर्वर पर, और इसका उपयोग एक नया सीएसआर बनाने के लिए, इसे हस्ताक्षर करने के लिए भेजें, और प्रमाणपत्र प्राप्त करें और आयात करें।

फिर मेरी मुख्य (वास्तविक) साइट पर मुझे वर्तमान प्रमाणपत्र को बदलने की आवश्यकता है, और फिर अस्थायी को हटा दें।

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