इस गाइड में, हम आपको दिखाएंगे कि विंडोज सर्वर 2019/2016/2012 R2 पर चल रहे IIS वेब सर्वर पर एक साइट के लिए एक मुफ्त TLS/SSL Let's Encrypt सर्टिफिकेट कैसे इंस्टॉल और बाइंड करें।
सामग्री:
- आइए विंडोज़ के लिए एन्क्रिप्ट और एसीएमई क्लाइंट करें
- डब्ल्यूएसीएस क्लिंट विंडोज सर्वर पर आईआईएस में लेट्स एनक्रिप्ट टीएलएस सर्टिफिकेट इंस्टॉल करेगा
- आईआईएस यूआरएल पुनर्लेखन का उपयोग करके एचटीटीपी से एचटीटीपीएस पर रीडायरेक्ट करें
- आरडीएस गेटवे और वेब एक्सेस के साथ लेट्स एनक्रिप्ट सर्टिफिकेट का उपयोग करना
आइए Windows के लिए एन्क्रिप्ट और ACME क्लाइंट करें
किसी वेबसाइट का TLS/SSL प्रमाणपत्र सार्वजनिक नेटवर्क पर स्थानांतरित किए गए उपयोगकर्ता डेटा को मैन-इन-द-बीच (MITM) से सुरक्षित रखने की अनुमति देता है ) हमला करता है और डेटा अखंडता प्रदान करता है। गैर-लाभकारी प्रमाणन केंद्र आइए एन्क्रिप्ट करें आपको API का उपयोग करके HTTPS एन्क्रिप्शन के लिए स्वचालित रूप से निःशुल्क X.509 एन्क्रिप्शन TLS प्रमाणपत्र जारी करने की अनुमति देता है। केवल 90 दिनों में समाप्त होने वाले डोमेन सत्यापन के लिए प्रमाणपत्र जारी किए जाते हैं (प्रति सप्ताह एक डोमेन के लिए 50 प्रमाणपत्रों की सीमा है)। लेकिन आप सरल शेड्यूलिंग का उपयोग करके अपनी वेबसाइट के लिए एसएसएल प्रमाणपत्र का स्वतः नवीनीकरण कर सकते हैं।
प्रमाणपत्रों को स्वचालित रूप से जारी करने के लिए Let's Encrypt API इंटरफ़ेस को स्वचालित प्रमाणपत्र प्रबंधन वातावरण कहा जाता है (एसीएमई ) एपीआई। विंडोज सिस्टम के लिए 3 सबसे लोकप्रिय एसीएमई एपीआई क्लाइंट कार्यान्वयन हैं:
- Windows ACME सरल (WACS) एक एसएसएल प्रमाणपत्र इंटरैक्टिव जारी करने के लिए कमांड प्रॉम्प्ट टूल है और इसे आपके आईआईएस वेब सर्वर पर एक विशिष्ट साइट से बांधता है;
- पावरशेल ACMESharp मॉड्यूल - एसीएमई एपीआई पर लेट्स एनक्रिप्ट सर्वर के साथ इंटरैक्ट करने के लिए कई cmdlets के साथ पावरशेल लाइब्रेरी है;
- प्रमाणित करें एसीएमई एपीआई का उपयोग करके एसएसएल प्रमाणपत्रों को अंतःक्रियात्मक रूप से प्रबंधित करने के लिए एक विंडोज ग्राफिक्स टूल है।
डब्ल्यूएसीएस क्लिंट इंस्टाल करने के लिए विंडोज सर्वर पर आईआईएस में लेट्स एनक्रिप्टेड टीएलएस सर्टिफिकेट करें
Let's Encrypt से SSL प्रमाणपत्र प्राप्त करने का सबसे आसान तरीका है कंसोल टूल Windows ACME Simple का उपयोग करना (WACS ) (पहले इस प्रोजेक्ट को LetsEncrypt-Win-Simple . कहा जाता था ) यह एक साधारण विज़ार्ड है जो आपको IIS पर चलने वाली वेबसाइटों में से किसी एक को चुनने की अनुमति देता है, स्वचालित रूप से एक SSL प्रमाणपत्र जारी करता है और उसे बाध्य करता है।
मान लीजिए, आपके पास एक आईआईएस वेबसाइट है जो विंडोज सर्वर 2016 पर चल रही है। आपका काम लेट्स एनक्रिप्ट से एक मुफ्त एसएसएल प्रमाणपत्र स्थापित करके वेबसाइट को एचटीटीपीएस मोड में बदलना है।
GitHub से WACS क्लाइंट की नवीनतम रिलीज़ डाउनलोड करें https://github.com/PKISharp/win-acme/releases (मेरे मामले में, यह संस्करण v2.0.10 है - फ़ाइल का नाम win-acme.v2 है .0.10.444.ज़िप )।
सर्वर पर जहाँ IIS स्थापित है, ज़िप संग्रह को निम्न निर्देशिका में निकालें:c:\inetpub\letsencrypt
एलिवेटेड कमांड प्रॉम्प्ट खोलें, c:\inetpub\letsencrypt निर्देशिका पर जाएं और wacs.exe चलाएं . यह एक इंटरेक्टिव Let's Encrypt सर्टिफिकेट जनरेशन लॉन्च करेगा और IIS साइट विजार्ड के लिए बाध्यकारी होगा। जल्दी से एक नया प्रमाणपत्र बनाने के लिए, N: . चुनें - नए प्रमाणपत्र बनाएं (IIS के लिए आसान) ।
इसके बाद, आपको प्रमाणपत्र प्रकार का चयन करना होगा। हमारे उदाहरण में, उपनाम (एकाधिक SAN - विषय वैकल्पिक नाम) के साथ प्रमाणपत्र का उपयोग करने की कोई आवश्यकता नहीं है, इसलिए बस एक आइटम 1 का चयन करें। IIS साइट का एकल बाइंडिंग . यदि आपको वाइल्डकार्ड प्रमाणपत्र की आवश्यकता है, तो विकल्प चुनें 3 .
फिर उपयोगिता आईआईएस पर चलने वाली वेबसाइटों की सूची प्रदर्शित करती है और आपको प्रमाण पत्र जारी करने के लिए एक साइट का चयन करने के लिए प्रेरित करती है।
अपना ईमेल पता निर्दिष्ट करें जिस पर प्रमाणपत्र नवीनीकरण समस्याओं और अन्य महत्वपूर्ण संदेशों और दुरुपयोगों के बारे में सूचनाएं भेजी जाएंगी (आप अल्पविराम द्वारा अलग किए गए एकाधिक ईमेल पते निर्दिष्ट कर सकते हैं)। यह उपयोग की शर्तों से सहमत होना बाकी है और Windows ACME Simple Let’s Encrypt सर्वर से कनेक्ट होगा और आपकी वेबसाइट के लिए स्वचालित रूप से एक नया SSL प्रमाणपत्र जेनरेट करने का प्रयास करेगा।
आईआईएस के लिए एसएसएल लेट्स एनक्रिप्ट सर्टिफिकेट बनाने और स्थापित करने की प्रक्रिया पूरी तरह से स्वचालित है।
डिफ़ॉल्ट रूप से, डोमेन सत्यापन http-01 सत्यापन (SelfHosting) . में किया जाता है तरीका। ऐसा करने के लिए, आपके पास अपने वेब सर्वर की ओर इशारा करते हुए एक डोमेन DNS रिकॉर्ड होना चाहिए। मैन्युअल मोड (पूर्ण विकल्प) में WACS चलाते समय, आप सत्यापन प्रकार का चयन कर सकते हैं - 4 [http-01] IIS में अस्थायी एप्लिकेशन बनाएं (अनुशंसित) . इस मामले में, IIS वेब सर्वर पर एक छोटा एप्लिकेशन बनाया जाएगा जिसके माध्यम से Let's Encrypt सर्वर डोमेन सत्यापन करने में सक्षम होंगे।
नोट . TLS/HTTP सत्यापन के दौरान, आपकी साइट को HTTP (80/TCP) और HTTPS (443/TCP) प्रोटोकॉल पर अपने पूर्ण DNS नाम से इंटरनेट से पहुँचा जा सकता है।WACS उपकरण प्रमाणपत्र (*.pem), प्रमाणपत्र की निजी कुंजी और C:\Users\%username%\AppData\Roaming\letsencrypt-win-simple<में कई अन्य फ़ाइलों को सहेजता है /em> . फिर यह पृष्ठभूमि में उत्पन्न Let’s Encrypt SSL प्रमाणपत्र को स्थापित करेगा और इसे आपकी IIS साइट से जोड़ देगा। यदि साइट पर एक एसएसएल प्रमाणपत्र स्थापित है (उदाहरण के लिए, स्व-हस्ताक्षरित प्रमाणपत्र), तो इसे एक नए से बदल दिया जाएगा।
IIS प्रबंधक में, साइट बाइंडिंग खोलें अपनी वेबसाइट के लिए सेटिंग और सत्यापित करें कि यह लेट्स एनक्रिप्ट अथॉरिटी X3 द्वारा जारी किए गए प्रमाणपत्र का उपयोग करती है ।
यदि आपने Windows विश्वसनीय रूट प्रमाणन प्राधिकरणों को अद्यतन किया है तो यह प्रमाणपत्र आपके कंप्यूटर पर विश्वसनीय के रूप में दिखाई देगा।
आप वेब होस्टिंग -> प्रमाणपत्र के अंतर्गत कंप्यूटर प्रमाणपत्र स्टोर में Let's Encrypt IIS प्रमाणपत्र प्राप्त कर सकते हैं ।
विंडोज एसीएमई सिंपल विंडोज टास्क शेड्यूलर में एक नया काम बनाता है (win-acme-renew (acme-v02.api.letsencrypt.org)
) प्रमाणपत्र को स्वचालित रूप से नवीनीकृत करने के लिए। कार्य हर दिन शुरू होता है, और प्रमाणपत्र का नवीनीकरण 60 दिनों के बाद किया जाता है। यह कार्य कमांड चलाता है:
C:\inetpub\letsencrypt\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org"
लेट्स एनक्रिप्ट सर्टिफिकेट को मैन्युअल रूप से अपडेट करने के लिए आप उसी कमांड का उपयोग कर सकते हैं।
IIS URL पुनर्लेखन का उपयोग करके HTTP से HTTPS पर पुनर्निर्देशित करें
आने वाले सभी HTTP ट्रैफ़िक को HTTPS वेबसाइट URL पर पुनर्निर्देशित करने के लिए, Microsoft URL पुनर्लेखन मॉड्यूल स्थापित करें (https://www.iis.net/downloads/microsoft/url-rewrite), और सुनिश्चित करें कि साइट सेटिंग्स में एसएसएल की आवश्यकता विकल्प अक्षम है। अब पुनर्लेखन को web.config में पुनर्लेखन नियमों के साथ कॉन्फ़िगर करें:
<नियम नाम ="HTTP से HTTPS रीडायरेक्ट" सक्षम ="सत्य" स्टॉपप्रोसेसिंग ="सत्य"> <मिलान url ="(। *)" /> <शर्तें> <इनपुट जोड़ें ="{HTTPS}" पैटर्न ="बंद" अनदेखा करें ="सत्य" /> शर्तें> <क्रिया प्रकार ="रीडायरेक्ट" url ="https://{HTTP_HOST}/{R:1}" appendQueryString ="सच" रीडायरेक्ट टाइप ="स्थायी" />नियम आप IIS प्रबंधक GUI के माध्यम से URL पुनर्लेखन एक्सटेंशन का उपयोग करके ट्रैफ़िक रीडायरेक्ट को भी कॉन्फ़िगर कर सकते हैं। साइटें Select चुनें -> आपका साइटनाम -> यूआरएल पुनर्लेखन ।
एक नया नियम बनाएं नियम जोड़ें -> रिक्त नियम ।
नियम का नाम निर्दिष्ट करें और निम्नलिखित पैरामीटर मान बदलें:
- अनुरोधित URL :पैटर्न से मेल खाता है
- उपयोग करना :रेगुलर एक्सप्रेशन
- पैटर्न :(.*)
शर्तों . में अनुभाग में, तार्किक समूहीकरण . बदलें :सभी का मिलान करें और जोड़ें . पर क्लिक करें . निम्नलिखित सेटिंग्स निर्दिष्ट करें:
- शर्त इनपुट: {एचटीटीपीएस}
- जांचें कि क्या इनपुट स्ट्रिंग: पैटर्न से मेल खाता है
- पैटर्न: ^ऑफ$
अब एक्शन ब्लॉक में चुनें:
- कार्रवाई का प्रकार: रीडायरेक्ट
- यूआरएल रीडायरेक्ट करें :https://{HTTP_HOST}/{R:1}
- रीडायरेक्ट प्रकार :स्थायी (301)
एक ब्राउज़र खोलें और अपनी साइट को एक HTTP पते के साथ खोलने का प्रयास करें; आपको स्वचालित रूप से HTTPS URL पर पुनर्निर्देशित किया जाना चाहिए।
आरडीएस गेटवे और वेब एक्सेस के साथ लेट्स एनक्रिप्ट सर्टिफिकेट का उपयोग करना
यदि आप बाहरी उपयोगकर्ताओं को कॉर्पोरेट नेटवर्क से जोड़ने के लिए RDS गेटवे या RDS वेब एक्सेस का उपयोग करते हैं, तो आप स्व-हस्ताक्षरित प्रमाणपत्र के बजाय Let’s Encrypt से विश्वसनीय SSL प्रमाणपत्र का उपयोग कर सकते हैं। Windows सर्वर पर दूरस्थ डेस्कटॉप सेवाओं को सुरक्षित करने के लिए Let's Encrypt प्रमाणपत्र को सही ढंग से स्थापित करने के तरीके पर विचार करें।
यदि दूरस्थ डेस्कटॉप गेटवे सर्वर पर RDSH भूमिका भी स्थापित है, तो आपको गैर-व्यवस्थापक उपयोगकर्ताओं को उस निर्देशिका तक पहुँचने से रोकना चाहिए जिसमें WACS फ़ाइलें (मेरे उदाहरण में, c:\inetpub\letencrypt) और Let's एन्क्रिप्ट प्रमाणपत्र और कुंजियाँ ( C:\ProgramData\win-acme) संग्रहीत हैं।
फिर, जैसा कि ऊपर बताया गया है, RD गेटवे सर्वर पर wacs.exe चलाएँ। वांछित आईआईएस साइट का चयन करें (आमतौर पर यह डिफ़ॉल्ट वेब साइट . है . आइए एनक्रिप्ट आपको एक नया प्रमाणपत्र जारी करेगा और इसे आईआईएस वेबसाइट से जोड़ देगा, और स्वचालित प्रमाणपत्र नवीनीकरण कार्य टास्क शेड्यूलर में दिखाई देगा।
आप इस प्रमाणपत्र को मैन्युअल रूप से निर्यात कर सकते हैं और इसे एसएसएल बाइंडिंग के माध्यम से आवश्यक आरडीएस सेवाओं से जोड़ सकते हैं। लेकिन जब Let's Encrypt प्रमाणपत्र का नवीनीकरण किया जाता है, तो आपको हर 60 दिनों में इन चरणों को मैन्युअल रूप से करना होगा।
लेट्स एनक्रिप्ट सर्टिफिकेट को अपडेट करने के बाद हम एसएसएल सर्टिफिकेट को आरडीएस गेटवे से स्वचालित रूप से बांधने के लिए पावरशेल स्क्रिप्ट का उपयोग कर सकते हैं।
win-acme . में एक तैयार PowerShell स्क्रिप्ट है प्रोजेक्ट - ImportRDGateway.ps1 (https://github.com/PKISharp/win-acme/tree/master/dist/Scripts ), जो आपको दूरस्थ डेस्कटॉप सेवाओं के लिए चयनित SSL प्रमाणपत्र स्थापित करने की अनुमति देता है। इस स्क्रिप्ट का मुख्य दोष यह है कि आपको नए प्रमाणपत्र के अंगूठे के निशान को मैन्युअल रूप से निर्दिष्ट करना होगा:
ImportRDGateway.ps1 <certThumbprint>
निर्दिष्ट आईआईएस साइट से स्वचालित रूप से प्रमाणपत्र थंबप्रिंट प्राप्त करने के लिए, संशोधित स्क्रिप्ट का उपयोग करें ImportRDGateway_Cert_From_IIS.ps1 (ImportRDGateway.ps1 पर आधारित)।
आप इस स्क्रिप्ट को मैन्युअल रूप से चला सकते हैं:
powershell -File ImportRDGateway_Cert_From_IIS.ps1
यदि आपका RDS गेटवे IIS "डिफ़ॉल्ट वेब साइट" पर इंडेक्स 0 के साथ चलता है, तो आप बिना बदलाव के स्क्रिप्ट का उपयोग कर सकते हैं।
IIS पर साइट आईडी प्राप्त करने के लिए, PowerShell कंसोल खोलें और चलाएं:
Import-Module WebAdministration
Get-ChildItem IIS:Sites|ft -AutoSizeआईडी कॉलम आपकी साइट की अनुक्रमणिका दिखाता है, उसमें से एक घटाएं। परिणामी अनुक्रमणिका 0 . के बजाय निर्दिष्ट की जानी चाहिए PowerShell स्क्रिप्ट की पंक्ति 27 में:
$NewCertThumbprint =(Get-ChildItem IIS:SSLBindings)[0 ].अंगूठे के निशान
अब win-acme-renew खोलें शेड्यूलर कार्य, और कार्रवाइयां . पर टैब एक नया कार्य जोड़ें जो SSL प्रमाणपत्र को अद्यतन करने के बाद ImportRDGateway_Cert_From_IIS.ps1 स्क्रिप्ट चलाता है।
PowerShell निष्पादन नीति को न बदलने के लिए, आप स्क्रिप्ट को कमांड के साथ चला सकते हैं:
PowerShell.exe -ExecutionPolicy Bypass -File c:\inetpub\letsencrypt\ImportRDGateway_Cert_From_IIS.ps1
अब लेट्स एनक्रिप्ट सर्टिफिकेट के नवीनीकरण के तुरंत बाद एसएसएल सर्टिफिकेट को आरडीएस से जोड़ने की स्क्रिप्ट को निष्पादित किया जाएगा। इस मामले में, आरडी गेटवे सेवा स्वचालित रूप से कमांड के साथ पुनरारंभ हो जाती है:
Restart-Service TSGateway
[अलर] जब TSGateway सेवा फिर से शुरू होती है, तो सभी मौजूदा उपयोगकर्ता सत्र डिस्कनेक्ट हो जाते हैं, इसलिए हर 60 दिनों में एक बार प्रमाणपत्र नवीनीकरण कार्य शुरू करने की आवृत्ति को बदलने की सिफारिश की जाती है।[/अलर्ट]