सवाल आईआईएस 7: एसएसएल प्रमाण पत्र और पोर्ट 443 के साथ साइट पर होस्ट नाम सेट नहीं कर सकता


IIS7 के साथ एक विन 2008 एसपी 2 मशीन पर विचार करें। कार्य इस मशीन पर एक और एकमात्र साइट पर प्रमाण पत्र और होस्ट नाम लागू करना है। साइट के होस्ट हेडर होने की आवश्यकता है abc.123.example.com

पहला कदम व्यक्तिगत स्टोर में .pfx इंस्टॉल कर रहा था, जो सफल था।

आईआईएस 7 प्रमाण को उपलब्ध कराता है, लेकिन मेजबान नाम की प्रविष्टि की अनुमति नहीं देगा। मेजबान का नाम टेक्स्टबॉक्स हमेशा मेरे प्रमाणपत्र का चयन करने से पहले, अक्षम / गहरा हुआ है। मैंने डिफ़ॉल्ट पोर्ट 80 बाध्यकारी भी हटा दिया है।

Site Bindings

सवाल: मैं इस साइट के लिए होस्ट नाम कैसे सेट कर सकता हूं? क्या यह प्रमाण पत्र वाइल्डकार्ड प्रमाण है? मैं समझता हूं कि एसएसएल अनुरोध वेब सर्वर में आता है, और पैकेट में होस्ट हेडर एन्क्रिप्ट किया गया है। फिर आईआईएस 6 मेजबान हेडर को निर्दिष्ट करने की अनुमति क्यों देगा, लेकिन आईआईएस 7 नहीं?

अद्यतन करें: प्रमाण समस्या का हिस्सा नहीं है। मैंने मशीन पर एक नई साइट बनाई है, और https बाध्यकारी चुनते समय, होस्ट नाम टेक्स्टबॉक्स अक्षम है।


42
2017-12-22 23:23


मूल




जवाब:


आप इसे यूआई से नहीं कर सकते हैं, आपको इसे कमांड लाइन से करना है। प्रक्रिया के माध्यम से यहां एक अच्छी सैर है:

http://www.sslshopper.com/article-ssl-host-headers-in-iis-7.html


28
2017-12-23 02:35



आसान चाल, प्रमाण पत्र को '*' से शुरू करने वाला एक दोस्ताना नाम दें, आईआईएस होस्ट-हेडर बॉक्स को ग्रे नहीं करेगा: blog.armgasys.com/?p=80 - russau
मुझे पता है कि यह पुराना है, और यह केवल एक टिप्पणी में है, लेकिन इस आसान चाल ने मुझे कुछ निराशा बचाई। धन्यवाद! - bpursley


यह जीयूआई में काम करता है ...

बस सुनिश्चित करें कि आपके द्वारा इंस्टॉल किए जा रहे प्रमाण का 'मित्रवत नाम' प्रमाण के लिए आपके द्वारा किए गए मल्टीडोमेन नाम जैसा ही है।

अर्थात। * .companydomain.com

यदि आप * .companydoman.com प्रमाण के लिए 'अच्छा दोस्ताना नाम' डालते हैं, तो IIS में प्रमाणपत्र स्थापित करते समय, यह मेजबान नाम हेडर बॉक्स को भूरे रंग में डाल देगा।

यदि आप * .companyname.com को दोस्ताना नाम के रूप में उपयोग करते हैं, तो आप सुनहरे हैं।

बूम।


38
2017-12-16 14:03



इस टिप के लिए धन्यवाद! यदि कोई और आईआईएस से किसी प्रमाण का नाम नहीं ले सकता है (क्या कोई भी हो सकता है?) आप प्रमाण पत्र के लिए एमएमसी स्नैप-इन में प्रमाण का नाम बदल सकते हैं। बस एमएमसी लोड करें, प्रमाण पत्र स्नैप-इन जोड़ें, कंप्यूटर खाता, स्थानीय कंप्यूटर का चयन करें। एक बार जब आप सर्टिफिकेट स्नैप-इन लोड कर लेते हैं तो आप सर्टिफिकेट्स (स्थानीय कंप्यूटर)> पर्सनल> सर्टिफिकेट्स पर ब्राउज़ कर सकते हैं और अपने प्रमाणपत्र पर गुणों का चयन करने के लिए राइट क्लिक कर सकते हैं। मित्रवत नाम फ़ील्ड को * .yoursite.com पर बदलें और IIS प्रबंधक स्नैप-इन को पुनः लोड करें - Garrett
दोस्ताना नाम केवल "*" से शुरू होने की आवश्यकता है, लेकिन उसके बाद आप जो भी अन्य नाम चाहते हैं उसे शामिल कर सकते हैं। मेरे मामले में मेरे पास कई अलग-अलग डोमेन के लिए प्रमाण प्रमाणित था, जिनके पास * .com के अलावा एक सामान्य रूट नहीं था और यह कि दोस्ताना नाम अजीब लग रहा था। तो, मैंने इसके बजाय * -my-वर्णनात्मक-नाम-कॉलिंग को समाप्त कर दिया। और नाम बदलने के लिए @ गारेट धन्यवाद! - wojtow
यह असली जवाब है। अच्छा - Joe Phillips


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

अधिक पूर्ण स्पष्टीकरण यह है कि SSL आपके ट्रैफ़िक को एन्क्रिप्ट करता है, और उस ट्रैफ़िक का हिस्सा ब्राउज़र द्वारा सर्वर पर भेजे गए HTTP शीर्षलेख है। उन शीर्षकों में से एक "होस्ट" हेडर होगा जो IIS उपयोग करता है यह निर्धारित करने के लिए कि कौन सी साइट अनुरोध के साथ लोड हो। चूंकि प्रमाण पत्र को सुरक्षित कनेक्शन स्थापित करने के लिए लोड करने की आवश्यकता है, अनुरोध शीर्षलेख भेजे जाने से पहले, आईआईएस को केवल आईपी पते और पोर्ट नंबर पर आधारित प्रमाण पत्र का चयन करना होगा, जिससे "होस्ट" हेडर को ठंड में बाहर निकालने में कारक के रूप में छोड़ दिया जाए कौन सी साइट लोड करने के लिए, इसलिए वे आपको एक दर्ज करने नहीं देते हैं।

यहां एक लेख है जो रेखांकित करता है एसएसएल कनेक्शन की आंतरिक कार्यप्रणाली बेहतर विवरण में।


10
2017-12-23 02:28



इस जवाब के लिए धन्यवाद, जस्टिन। मैं अभी भी अनिश्चित हूं कि आईआईएस 7 मुझे मेजबान हेडर निर्दिष्ट क्यों नहीं करता है, भले ही मैं सूची में से किसी एक आईपी पते को चुनूं। आईआईएस 6 बिना किसी समस्या के करता है। जैसा कि बताया गया है, यह मशीन पर एकमात्र साइट है। - p.campbell
होस्ट हेडर वाइल्डकार्ड प्रमाण, या बहु-डोमेन "यूसी" प्रमाण पत्र के साथ काम कर सकते हैं: sslshopper.com/unified-communications-uc-ssl-certificates.html। इस मामले में सर्वर के पास केवल 1 प्रमाणपत्र है, यहां तक ​​कि कई होस्टनाम भी हैं। - russau
बहुत स्पष्ट स्पष्टीकरण। +1 - Dan Solovay


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

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

सबसे पहले, हमें कुछ जानकारी इकट्ठा करने की जरूरत है। हमें हैश, एप्लिकेशन आईडी और होस्ट नाम की आवश्यकता है।

कदम

  1. IIS खोलें, अपने सर्वर का चयन करें और नीचे अनुभाग में "सर्वर प्रमाणपत्र" पर डबल क्लिक करें। "जारी किए गए" पते पर ध्यान दें। यह हमारा मेजबान नाम है। इसे बचाएं।
  2. अपनी साइट का चयन करें
  3. Http प्रोटोकॉल का उपयोग कर अपनी साइट को पोर्ट 80 पर बांधें
  4. अन्य सभी बाइंडिंग हटा दें
  5. Https प्रोटोकॉल का उपयोग कर पोर्ट 443 पर अपनी साइट को बाध्य करें
  6. एक कमांड प्रॉम्प्ट खोलें

    netsh http show sslcert
    
  7. प्रमाणपत्र हैश और एप्लिकेशन आईडी सहेजें

  8. अपनी साइट पर https बाध्यकारी निकालें
  9. कमांड प्रॉम्प्ट पर:

    netsh http add sslcert ipport=0.0.0.0:443 certstorename=my certhash=<put Certificate Hash here> appid={<put Application ID here>}
    
    appcmd set site /site.name:"<put site name here>" /+bindings.[protocol='https',bindingInformation='*:443:<put host name here>']
    

नोट: Appcmd.exe c: \ windows \ system32 \ insetsrv में पाया जा सकता है। इस आदेश के लिए आपको उस फ़ोल्डर में रहने की आवश्यकता हो सकती है।

  1. अपनी साइट से http बाध्यकारी निकालें

7
2017-11-19 18:15



धन्यवाद! इससे मुझे अंत में एचटीटीपीएस में काम करने में मेरी साइट मिली। मैंने आदेशों में से एक में टाइपो को सही किया, लेकिन मुझे न्यूनतम लंबाई आवश्यकताओं को प्राप्त करने के लिए शीर्षकों को जोड़ना पड़ा। इसे हटाने के लिए स्वतंत्र महसूस करें - आपका मूल उत्तर अनुसरण करना आसान है। चीयर्स! - potatopeelings
यह मेरे लिए 6 SANs (वाइल्डकार्ड प्रमाणपत्र नहीं) के साथ प्रमाण पत्र के साथ काम करता था, जिसमें थोड़ी भिन्नता थी क्योंकि मेरे पास कई साइटें थीं। मुझे एक बार चरण 1 से 7 करना पड़ा। चरण 8 प्रत्येक साइट पर किया जाना था। चरण 9 का पहला आदेश एक बार किया जाना था और प्रति पृष्ठ एक बार चरण 9 के दूसरे आदेश को किया जाना था। - Steve Kaye


असल में, आप गुई के माध्यम से एक होस्ट हेडर जोड़ सकते हैं, लेकिन यह इस बात पर निर्भर करता है कि प्रमाणपत्र का नाम कैसे दिया जाता है ... यदि मैं अपने वाइल्डकार्ड प्रमाण में * .xyz.com का दोस्ताना नाम देता हूं, और उस प्रमाणपत्र का चयन करता हूं, तो मैं गुई का उपयोग करने में सक्षम। अगर दोस्ताना नाम xyzwildcard जैसा कुछ है, और मैं इसे चुनता हूं, तो यह होस्टहेडर फ़ील्ड को बाहर निकाल देता है ...

अजीब अजीब


2
2018-01-26 23:12





यहां स्वीकृत उत्तर भ्रमित है और मुझे नहीं लगता कि यह प्रश्न के लिए सही है। यह स्वीकार्य उत्तर नहीं होना चाहिए।

समस्या

आपके पास वाइल्डकार्ड एसएसएल है जैसे कि *.ipsum.com और प्रमाण पत्र स्थापित है लेकिन जब आप एक HTTPS बाध्यकारी जोड़ने का प्रयास करते हैं तो आप IIS में साइट के लिए होस्ट नाम नहीं चुन सकते हैं क्योंकि टेक्स्ट बॉक्स गहरा हुआ है।

समाधान

आपका वाइल्डकार्ड एसएसएल किसी भी सबडोमेन के साथ इस्तेमाल किया जा सकता है, आपको बस इसकी आवश्यकता है सुनिश्चित करो आप प्रमाणपत्र के मित्रतापूर्ण नाम के साथ शुरू करते हैं *। मैं वाइल्डकार्ड डोमेन के समान मित्रवत नाम का उपयोग करना पसंद करता हूं, उदा। *.ipsum.com लेकिन आप इसे किसी भी चीज को एस्टरिक्स के साथ कह सकते हैं: *foo

मैंने अपना प्रमाणपत्र गलत मित्रतापूर्ण नाम दिया, मदद!

विंडोज 8 या सर्वर 2012 के बाद से, आप टाइप कर सकते हैं certlm.msc प्रारंभिक मेनू में स्थानीय मशीन के लिए प्रमाणपत्र प्रबंधित करने के लिए। खिड़कियों के पिछले संस्करणों पर आपको कुछ और अधिक गड़बड़ करने की आवश्यकता होगी:

  1. रन mmc.exe शुरुआत से
  2. के लिए जाओ File मेनू और चुनें Add/Remove Snap-in... या मारा (Ctrl-M)
  3. उजागर करें Certificates स्नैप-इन और हिट करें Add > उसके बाद चुनो Computer Account के बाद Local Computer बाद के संवाद में फिर मारा Finish के बाद OK स्नैप-इन विंडो बंद करने के लिए

मुख्य विंडो में, विस्तार करें Certificates (Local Computer) फिर Personal फिर Certificates और आप प्रमाणपत्र पर राइट-क्लिक करने में सक्षम होंगे, हिट करें Properties जहां आप दोस्ताना नाम अपडेट कर सकते हैं।

आईआईएस प्रबंधक बंद करें और खोलें और फिर आप अपना होस्ट नाम सेट कर सकते हैं।


2
2018-03-15 14:40



यह चाल है! - Kreker


कुछ मशीनें आपको होस्ट नाम को संपादित नहीं करने देगी यदि प्रोटोकॉल को https में बदल दिया गया है या SSL प्रमाणपत्र जोड़ने के बाद। आईआईएस कई बार गड़बड़ हो सकता है।

यह विंडोज कमांड पोर्ट "443", होस्ट नाम "subdomain.domain.com", साइट का नाम "साइट नाम" पर प्रोटोकॉल "https" के साथ एक नया बाध्यकारी बनाएगा। अपनी आवश्यकताओं को पूरा करने के लिए उन मानों (उद्धरणों में) बदलें। पोर्ट पोर्ट 443 का उपयोग करते समय आपको पुराने बाध्यकारी को हटाने की आवश्यकता होगी।

Run Windows Command Prompt as Administrator

सी:>cd C:\Windows\System32\inetsrv

C: \ Windows \ System32 \ inetsrv>appcmd set site /site.name:"site_name" /+bindings.[protocol='https',bindingInformation='*:443:subdomain.domain.com']


1
2018-02-11 16:22





मुझे लगता है यह केबी लेख इस मुद्दे पर कुछ प्रकाश डालेगा। जब आप एसएसएल का उपयोग करते हैं तो संक्षेप में HTTP 1.1 होस्ट हेडर समर्थित नहीं होते हैं।

सिक्योरबिंडिंग मेटाबेस कुंजी का उपयोग करना चाहते हैं जो संभवतः आप जो चाहते हैं उसे पूरा करेंगे। जैसे cscript.exe adsutil.vbs सेट / w3svc / websiteID / सुरक्षित बाइंडिंग "ip.ip.ip.ip: 443: abc.123.mysite.com


-1
2017-12-23 02:52



आईआईएस 7 पर लागू नहीं होता है। - davidcl
यह अजीब है क्योंकि यह काम करता है जब हमने इसे किया ... - Jim B


क्यों एमएसआई इसे बाहर ले जाता है जीयूआई मेरे बाहर है, क्योंकि, यदि आपके पास एएसपी.NET एप्लिकेशन है जो लाइसेंस फाइलों (लाइसेंस) का उपयोग करता है, तो आपकी साइट काम नहीं करेगी क्योंकि यह डोमेन नाम के बजाय आईपी एड्रेस के रूप में दिखाई देती है । उन्हें अपने सॉफ्टवेयर की हर नई रिलीज पर असंतोष रोकना होगा - आईटी लोगों को माइक्रोसॉफ्ट द्वारा बेबीसिट करने की आवश्यकता नहीं है! गीज़!


-1
2018-01-22 17:54