प्रमाणपत्र को नवीनीकृत करने से आप प्रमाण पत्र की समाप्ति तिथि को अपडेट करते समय उसी सार्वजनिक और निजी कुंजी को रख सकते हैं। इसका फायदा यह है कि अगर आपको राउटर या किसी चीज पर थंबप्रिंट स्टोर करना है। मेरा मानना है कि अनुरोध जारी करने के लिए एक ही जारी करने वाले सीए की आवश्यकता होती है, इसलिए हाथ से एक नया अनुरोध उत्पन्न करना आसान हो सकता है।
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 इसे समझता है)। यदि आप सेट अप करते हैं तो यह महत्वपूर्ण है कि आप पूरी तरह से योग्य डोमेन नाम (विषय पंक्ति के सीएन) को शामिल करें। आप एक्सटेंशन क्षेत्र को पूरी तरह से हटा सकते हैं यदि आपको कई डोमेन नामों की कोई आवश्यकता नहीं है (साथ ही, कुछ सीए इसका समर्थन नहीं कर सकते हैं)।
प्रक्रिया
एक बार जब आपके पास उपरोक्त जानकारी बच जाती है (मुझे पता है कि यह बहुत कुछ है)। इन कदमों का अनुसरण करें:
- एक कमांड प्रॉम्प्ट खोलें और उस डायरेक्टरी में सीडी लगाएं जहां आपने उपरोक्त इन्फैक्शन को बचाया है।
- Daud
certreq -new above.inf request.req
- अपने CA को request.req फ़ाइल भेजें। वे इसे संसाधित करेंगे और इसे स्वीकृत / अस्वीकृत करेंगे।
- जब वे इसे अनुमोदित करते हैं, तो उन्हें आपको अपनी सार्वजनिक कुंजी को .cer फ़ाइल में वापस भेजना चाहिए।
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