IIS 7 अभी भी पुराने एसएसएल प्रमाणपत्र की सेवा


27

मैंने IIS7 में एक नया एसएसएल प्रमाणपत्र स्थापित किया है, पुराने प्रमाण पत्र को हटा दिया है और नए प्रमाणपत्र के लिए बाइंडिंग सेटअप किया है - इसलिए https अब केवल नए प्रमाणपत्र के लिए बाध्य है।

मैंने IIS7 (और Windows 2008 सर्वर स्वयं) को पुनः आरंभ किया और आदेशों का उपयोग करते हुए प्रमाणपत्र की जांच की:

netsh http show sslcert

जैसा कि मुझे उम्मीद थी कि इसने नया प्रमाण पत्र दिखाया

certutil -store MY

यह भी केवल नया प्रमाण पत्र दिखाया गया है और पुराना नहीं है, जैसा कि मुझे उम्मीद थी

मैंने एमएमसी भी खोला और वहां के प्रमाणपत्रों की जांच की और मैं केवल नया देखता हूं और पुराना नहीं।

मैं व्यवस्थापक विशेषाधिकारों के साथ एक खाते का भी उपयोग कर रहा हूं।

हालाँकि - जब मैं एक ब्राउज़र (किसी भी कंप्यूटर से) खोलता हूं और https साइट पर जाता हूं तो यह अभी भी पुराने प्रमाणपत्र का उपयोग कर रहा है। यहां तक ​​कि जब मैं ब्राउज़र से पुराने प्रमाण पत्र को हटाता हूं तब भी यह पुराने को भेजा जाता है और नया नहीं।

क्या कोई मेरी मदद कर सकता है जहाँ मैं गलत हो रहा हूँ? मैं पुराने प्रेत प्रमाणपत्र को कैसे समाप्त कर सकता हूं?

जवाबों:


28

पहले एक दो बिंदु जो आपके लिए संभवतः समान हैं

  • मैं एक प्रमाणपत्र को अद्यतन करने का प्रयास कर रहा था क्योंकि यह समाप्त हो गया है।
  • मेरे पास एक ही आईपी के लिए कई डोमेन हैं। वे होने के लिए एक SAN प्रमाण पत्र, लेकिन यह शायद अप्रासंगिक है।
  • मैं केंद्रीकृत प्रमाणपत्र स्टोर का उपयोग करने की कोशिश कर रहा था। फिर से मुझे लगता है कि यह मेरे अधिकांश उत्तर के लिए अप्रासंगिक है।
  • मैंने पहले ही प्रमाणपत्र को अपडेट करने का प्रयास किया था लेकिन यह नई तारीख नहीं दिखा रहा था।
  • यदि आपका पुराना प्रमाणपत्र पहले ही समाप्त हो चुका है, तो आप शायद अभी दहशत में हैं। एक गहरी सास लो...

पहले मैं दृढ़ता https://www.digicert.com/help/से उनके DigiCert टूल को डाउनलोड करने और डाउनलोड करने की सलाह दूंगा। आप इसे ऑनलाइन भी इस्तेमाल कर सकते हैं।

अपनी वेबसाइट में दर्ज करें https://example.comऔर यह आपको समाप्ति तिथि और थंबप्रिंट (जिसे एमएस प्रमाणपत्र हैश कहता है) दिखाएगा। यह रियलटाइम लुकअप करता है इसलिए आपको चिंता करने की ज़रूरत नहीं है कि आपका ब्राउज़र (या मध्यवर्ती सर्वर) कुछ कैशिंग कर रहा है या नहीं।

यदि आप केंद्रीकृत प्रमाणपत्र स्टोर का उपयोग कर रहे हैं, तो आप 100% सुनिश्चित होना चाहते हैं।। Pfx फ़ाइल नवीनतम संस्करण है, इसलिए अपनी स्टोर निर्देशिका में जाएं और इस कमांड को चलाएं:

C:\WEBSITES\SSL> certutil -dump www.example.com.pfx

यह आपको समाप्ति तिथि और हैश / थंबप्रिंट दिखाएगा। जाहिर है अगर यह समाप्ति की तारीख गलत है, तो आप गलत तरीके से फाइल सिस्टम के लिए गलत प्रमाणपत्र का निर्यात करते हैं, इसलिए पहले जाकर इसे ठीक करें।

यदि आप CCS का उपयोग कर रहे हैं, तो यह प्रमाणित करने की आज्ञा मानने से आपको अपेक्षित समाप्ति तिथि (आपके अद्यतित प्रमाणपत्र की) मिल सकती है।

कमांड चलाएँ:

netsh http show sslcert > c:\temp\certlog.txt
notepad c:\temp\certlog.txt

आपके पास इसमें बहुत सारा सामान होने की संभावना है इसलिए इसे टेक्स्ट एडिटर में खोलना आसान है।

आप इस फ़ाइल को उस गलत हैश के लिए खोजना चाहेंगे जो आपको मिला है digicert.com(या आपके द्वारा किया गया थंबप्रिंट)।

मेरे लिए यह निम्नलिखित है। आप देखेंगे कि यह एक आईपी से जुड़ा है और मेरा अपेक्षित डोमेन नाम नहीं है। यही समस्या है। ऐसा लगता है कि यह (जिस भी कारण से मुझे यकीन नहीं है) IIS में बाइंडिंग सेट पर पूर्वता लेता है जिसे मैंने अभी-अभी अपडेट किया है example.com

IP:port                      : 10.0.0.1:443
Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

मुझे यह भी पता नहीं है कि यह बंधन कहां से आया है - मुझे अपनी डिफ़ॉल्ट साइट पर कोई एसएसएल बाइंडिंग भी नहीं है, लेकिन यह सर्वर कुछ साल पुराना है और मुझे लगता है कि कुछ बस दूषित और अटक गया है।

इसलिए आप इसे हटाना चाहते हैं।

सुरक्षित पक्ष पर रहने के लिए आप निम्नलिखित कॉमैंड को पहले चलाना चाहते हैं, यह सुनिश्चित करने के लिए कि आप केवल इस एक आइटम को हटा रहे हैं:

C:\Windows\system32>netsh http show sslcert ipport=10.0.0.1:443

SSL Certificate bindings:
-------------------------

IP:port                      : 10.0.0.1:443
Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

अब हमने सत्यापित कर लिया है कि यह 'खराब' थंबप्रिंट है, और अपेक्षित एकल रिकॉर्ड हम इसे इस कमांड से हटा सकते हैं:

C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443

SSL Certificate successfully deleted

उम्मीद है कि यदि आप अब Digicert में वापस जाते हैं और कमांड को फिर से चलाते हैं तो यह आपको अपेक्षित प्रमाणपत्र थंबप्रिंट देगा। आप सभी SAN नामों की जाँच करें यदि आपके पास कोई सुनिश्चित करने के लिए है।

शायद IISRESET यहां चाहते हैं कि बाद में कोई आश्चर्य न हो।

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

सौभाग्य :-)


3
आप सिमंस के बीच एक साइमन हैं। हमारे मामले में, यह पता चला कि हमारे सर्वर ने समाप्त प्रमाणपत्र को 'कैश' कर दिया था, [::1]:443जबकि IIS में प्रमाण पत्र को अपडेट करने के लिए केवल रिकॉर्ड अपडेट किया गया था 0.0.0.0:443। धन्यवाद!
tuespetre

1
इसने एक ही आईपी पर कई डोमेन के साथ मेरी समस्या को हल किया; केंद्रीकृत प्रमाणित स्टोर का उपयोग नहीं करना।
क्रिस एफ कैरोल

1
मुझे इसे कुछ बार उपयोग करना पड़ा है। PLESK वेब होस्टिंग प्रबंधन सॉफ्टवेयर कभी-कभी प्रमाणपत्र बाइंडिंग को गड़बड़ कर देता है और मैं समाप्त होने वाले बंधन को हटाने के लिए उपरोक्त netsh आदेशों की आवश्यकता करता हूं। सुनिश्चित नहीं हैं कि कौन से संस्करण सभी प्रभावित हैं, लेकिन मैं विंडोज सर्वर 2016 पर PLESK गोमेद के वर्तमान संस्करण का उपयोग कर रहा हूं।
BenSwayne

मेरे मामले में यह hostname और port द्वारा किया गया था। इसलिए, hostname द्वारा फ़िल्टर और डिलीट करने के लिए, कमांड्स होंगे: "netsh http शो sslcert hostnameport = www.example.com: 443" और "netsh http sslcert hostnameport = www.example.com: 443 हटाएं"
कार्तिक जयपाल

14

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


मैंने जाँच की और पोर्ट 443 के लिए बाइंडिंग में प्रमाण पत्र नया प्रमाणपत्र है, पुराना नहीं। तुम्हारे सुझाव के लिए धन्यवाद।
joechip

1
अजीब, मैंने ऐसा कभी नहीं किया है। हालांकि मैं पुराने प्रमाणपत्रों को कभी नहीं हटाता। आप कैसे सुनिश्चित करें कि आप अभी भी पुराने प्रमाणपत्र प्राप्त कर रहे हैं? क्या यह दिखा रहा है कि यह समाप्त हो गया है?
टाटास

हां, ब्राउज़र में आप प्रमाणपत्र के विवरण (समाप्ति तिथि, आदि) और इसकी पुरानी जांच कर सकते हैं जो IIS7 सेवारत है।
जोइचिप

1
मैंने इसे क्रोम के साथ देखा है। Chrome पुराने प्रमाणपत्र को कैशिंग करके उपयोगकर्ता को दिखा रहा है।
टॉमटॉम

3

मैंने अभी इसे काम किया है। सर्वर वास्तव में ISA सर्वर के पीछे बैठा था, इसलिए हमें ISA सर्वर पर नया SSL प्रमाणपत्र भी स्थापित करना था।


3

मेरे पास एक ही मुद्दा था और बाइंडिंग की भी जाँच की। मेरे पास IIS में 2 ऐप इंस्टॉल थे, एक नए सर्टिफिकेट का उपयोग कर रहा था, एक पुराने का उपयोग कर रहा था।

ठीक करने के लिए, मुझे सर्वर से प्रमाण पत्र को पूरी तरह से हटाना पड़ा (फिर संभवतः एक रिबूट)।

IIS प्रबंधक से -> (IIS ट्री रूट) -> सर्वर प्रमाण पत्र आइकन, पुराने प्रमाणपत्र का चयन करें और क्रियाएँ फलक में निकालें पर क्लिक करें।


1
इसी तरह वास्तव में हमारे पास एक अतिरिक्त STOPPED साइट थी जो पुराने प्रमाण पत्र को संदर्भित करती थी, और एक बार जब हमने नए का उपयोग करने के लिए उस साइट को अपडेट कर दिया, तो वास्तविक लाइव साइट ने नया प्रमाणपत्र दिखाना शुरू कर दिया!
एक्शन डैन

1

IPv6 अपग्रेड के दौरान मुझे यह अनुभव हुआ। यदि किसी ने HTTP के माध्यम से एक सेवा का उपयोग करने की कोशिश की है तो मैं IIS था जो वास्तव में एक वेब सर्वर आधारित सेवा नहीं थी। मैंने IPv6 होने के लिए वास्तविक सेवा (एक वॉयस सर्वर) को अपडेट किया था, हालाँकि मैं IPv6 पतों को शामिल करने के लिए रीडायरेक्ट के लिए बाइंडिंग को अपडेट करने में विफल रहा था।

इसके परिणामस्वरूप रिज़ॉल्यूशन सभी साइट पर विश्व स्तर पर बाध्य पकड़ में विफल हो गया, जिस पर इसका पुराना प्रमाण पत्र था। 404 के सभी कैच के बाद से, यह प्रतीत हुआ कि साइट काम नहीं कर रही थी, जब वास्तव में यह गलत साइट को मार रहा था।


0

मामले में किसी को अभी भी इस मुद्दे पर ठोकर। जाने से मेरा हल हो गया था

C:\inetpub\wwwroot

फिर आपको एक web.config फ़ाइल मिलेगी, इसे नोटपैड का उपयोग करके खोलें और इसके साथ लाइन को हटा दें

<httpRedirect enabled="true" destination="http://foo.company.org" />

अपने IIS सर्वर के लोकलहोस्ट या रूट साइट तक पहुंचने के लिए सहेजें और पुनः प्रयास करें।

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