12

पृष्ठभूमि:ब्राउज़र क्लाइंट प्रमाणपत्र के लिए उत्साह नहीं है

मैं एक द्वि-चरणीय प्रमाणीकरण की प्रक्रिया के लिए एक आंतरिक आवेदन को अद्यतन करने कर रहा हूँ। मैं पारंपरिक उपयोगकर्ता नाम/पासवर्ड फॉर्म के शीर्ष पर क्लाइंट प्रमाणपत्र प्रमाणीकरण प्रक्रिया (स्मार्ट कार्ड के माध्यम से) जोड़ना चाहता हूं। एप्लिकेशन सी # में लिखा गया है, आईआईएस 7 पर होस्ट किया गया है, और क्रोम और आईई 8 को लक्षित करता है।

समस्या:

मैं एक क्लाइंट प्रमाणपत्र के लिए उपयोगकर्ता संकेत करने के लिए आवेदन प्राप्त करने के साथ मुद्दों कर रहा हूँ। मैं फिडलर की मदद से एप्लिकेशन को डीबग कर रहा हूं। जब मैं फ़िडलर के उपयोगकर्ता की निर्देशिका में बचाया एक परीक्षण ग्राहक प्रमाण पत्र (सी: \ My Documents \ Fiddler2 \ दस्तावेज़ और सेटिंग्स \ उपयोगकर्ता), आवेदन के रूप में उम्मीद काम करता है। मुझे स्मार्ट कार्ड की सुरक्षा करने वाले पिन नंबर के लिए कहा जाता है, और, जब सही तरीके से दर्ज किया जाता है, तो मुझे लॉगिन फॉर्म में ले जाता है। जब मैं फ़िडलर बंद करते हैं, आवेदन एक 403 निषिद्ध त्रुटि के बजाय (के बाद से Fiddler अब नहीं चल और उसके प्रमाण पत्र की ओर इशारा करते है) फेंकता है। जो मैं समझ नहीं पा रहा हूं वह यह है कि एप्लिकेशन सामान्य रूप से प्रमाण पत्र के लिए क्यों संकेत नहीं देगा।

वर्तमान सर्वर सेटअप:

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

मैं किसी अन्य सर्वर पर स्क्रैच से शुरू करने के अलावा अन्य प्रयास करने के लिए विचारों से बाहर हूं। क्या कोई जानता है कि समस्या क्या हो सकती है? ऐसा लगता है कि यह काफी सीधे आगे होना चाहिए और मुझे कुछ मामूली याद आ रही है। किसी भी विचार का स्वागत है।

अद्यतन:

आज इस मुद्दे के साथ अधिक समय बिताने के बाद, मैं दृढ़ता से मानना ​​है कि यह IIS7 ठीक से कॉन्फ़िगर नहीं किया जा रहा से कोई लेना देना नहीं है (मैं मूल रूप से ऊपर यह सेट नहीं था)। मुझे लगता है कि इस वजह से मैं अनुरोध ट्रेसिंग विफल सक्षम, बाद में .xml फ़ाइलें उत्पन्न किया जा रहा पर देखा, और देखा कि एक 500 त्रुटि फेंक दिया जा रहा था।

Chrome "-: प्रवेश निषेध है निषिद्ध 403" की तुलना में एक "वेबपृष्ठ पर पहुंच अस्वीकृत किया गया था" फेंक रहा है बल्कि संदेश। मुझे नहीं पता कि यह मदद करता है या नहीं। मुझे पता है कि जब मैं प्रमाण पत्र आवश्यक नहीं करता हूं, तो साइट इरादे के अनुसार काम करेगी। एक प्रमाणपत्र की आवश्यकता है जहां यह विफल रहता है।

आवेदन पूल 4.0 नेट पर सेट है | क्लासिक | नेटवर्क सेवा।

+0

सुनिश्चित नहीं है कि मैं मदद कर सकता हूं लेकिन कुछ प्रश्न हैं: 1) क्या आपने आईई या एफएफ भी कोशिश की? 2) परिणाम किसी अन्य सर्वर पर परिणामों को डुप्लिकेट करना चाहते हैं। मैंने इस तरह से कई मुद्दों को मदद/हल किया है - यह आपको आईआईएस 7 साइट की स्थापना के तरीके पर नट-किरकिरा पाने का मौका भी देगा; 3) क्या अधिक क्लाइंट और/या सर्वर लॉगिंग है, आप अधिक अंतर्दृष्टि प्राप्त करने का प्रयास कर सकते हैं - शायद आईआईएस 7 पक्ष पर अधिक, ऐसा लगता है। – Lizz

उत्तर

7

आपकी समस्या यह है कि ब्राउज़र को क्लाइंट प्रमाणपत्र प्रदान करने का अनुरोध नहीं मिलता है या ऐसा होने से रोकने के लिए सुरक्षा संबंधी विकल्प होता है। आईई केवल प्रमाणपत्र प्रदान करता है यदि वेबसाइट सही क्षेत्र में है (इंट्रानेट या भरोसेमंद साइटें)। सबकुछ से पहले इसे जांचें।

यदि यह मदद नहीं करता है तो अगले चरण के लिए यह answer देखें। netsh प्रलेखन कहते हैं:

clientcertnegotiation 
Optional. Specifies whether the negotiation of certificate is enabled or disabled. Default is disabled. 

कि सक्षम और यहां तक ​​कि सबसे बेवकूफ ब्राउज़र नोटिस देना चाहिए कि यह प्रमाणीकरण के लिए प्रमाण पत्र प्रदान करते हैं माना जाता है। अपनी समस्या का निदान करने के लिए आप कार्रवाई में बातचीत देखने के लिए WireShark का उपयोग कर सकते हैं।

+0

मैं इसे पर्याप्त रूप से ऊपर नहीं उठा सकता। समस्या निवारण के दिनों के बाद यह पता चला है कि हमारे ग्राहक ने हमारी साइट को विश्वसनीय क्षेत्र में नहीं रखा है। इसे समझाने और मुझे कई और दिनों की बचत के लिए धन्यवाद। –

4

openssl s_client -connect yourip:443 -prexit आज़माएं और देखें कि सीए (आपका स्वयं हस्ताक्षरित प्रमाण) क्लाइंट को स्वीकार्य क्लाइंट प्रमाणपत्र CA नामों में भेजता है या नहीं।

आप अगर आप इसे

+0

मुझे एक ही समस्या है इसलिए मैंने 'openssl s_client -connect yourip: 443 -prexit' कोशिश की है और कुछ त्रुटि संदेश देख रहा हूं' कनेक्टेड (00000104) लिखें: errno = 10054 --- कोई सहकर्मी प्रमाणपत्र उपलब्ध नहीं है 'भले ही मैंने वैध एसएसएल प्रमाण पत्र को आईआईएस पर *: 443 पर कॉन्फ़िगर किया है। – RanPaul

+0

@RanPaul मुझे पता है कि यह बहुत देर हो चुकी है, लेकिन यदि आप विंडोज मशीन पर हैं, तो ध्यान दें कि ओपनएसएसएल विंडोज सर्टिफिकेट स्टोर को नहीं पहचानता है। तो आपको '-CApath' या' -CAfile' प्रदान करने की आवश्यकता है। या तो [मोज़िला की .PEM फ़ाइल] डाउनलोड करें (https://curl.haxx.se/docs/caextract.html) या आवश्यक श्रृंखला से अपना स्वयं का निर्माण करें। [ओपनएसएसएल के नवीनतम संस्करण] को स्थापित करना सुनिश्चित करें (https://slproweb.com/products/Win32OpenSSL.html) भी। –

3

हर ब्राउज़र में मैंने देखा है की जरूरत नहीं है पहले openssl स्थापित करने की आवश्यकता, ब्राउज़र प्रमाणपत्र का चयन करने के लिए संकेत नहीं होगा अगर यह एक सीए द्वारा हस्ताक्षर किए जाने वाले प्रमाणपत्रों नहीं है सर्वर ट्रस्ट करता है। तो सुनिश्चित करें कि आपका सर्वर सही सीएएस के साथ कॉन्फ़िगर किया गया है। जैसा कि बोक्लियस ने सुझाव दिया है, आप विश्वसनीय सर्वरों की सूची की जांच करने के लिए openssl का उपयोग कर सकते हैं, जो आपका सर्वर ग्राहकों को भेज रहा है और देख सकता है कि आपने जिस सीए पर अपने क्लाइंट प्रमाणपत्रों पर हस्ताक्षर किए हैं, उनमें से है।

1

मिश्रण करने के लिए एक नहीं बल्कि दर्दनाक सबक जोड़ने के लिए: सुनिश्चित करें कि आप स्काइप (या किसी अन्य अनुप्रयोग) छोड़ने करें कि बंदरगाह खाती 443

तो विचार यहाँ है आप एक ही मशीन पर एक देव वातावरण चला रहे हैं (क्लाइंट और आईआईएस दोनों), और आपकी टीम संचार करने के लिए स्काइप या कुछ अन्य ऐप का उपयोग करती है।

जब आप इस समस्या को आजमाते हैं और डीबग करते हैं, तो घंटों को देखें, प्रतीत होता है कि सब कुछ "दाएं", netsh http sslcerts और ऐसे में, यहां तक ​​कि रिबूटिंग भी नहीं है। खैर, पता चला है कि स्काइप 443 खाएगा, इसलिए इसे बंद करें और "पोफ" आपके सर्टिफिकेट प्रॉम्प्ट पर जाता है।

फिर चीजों को दीवार पर फेंकने, अस्पष्टता चिल्लाओ या सिर्फ "क्रोध, प्रकाश की मरने के खिलाफ क्रोध" मुक्त महसूस करें।

0

इसके अलावा, सुनिश्चित करें कि फिडलर रास्ते में नहीं जा रहा है। यदि आपके पास SSL को डिक्रिप्ट करना है, तो यह संदेश को IE पर वापस दूषित कर देगा, और इसमें प्रमाणपत्र स्थापित नहीं है, इसलिए यह इसे पेश नहीं कर सकता है। फिडलर, और वॉयला बंद करें, सर्टिफिकेट प्रॉम्प्ट प्रकट होता है।

संबंधित मुद्दे