2011-04-02 3 views
55

मैं एक वीएस -2010 एमवीसी 3 परियोजना के लिए सुरक्षित कनेक्शन स्वीकार करने में आईआईएस एक्सप्रेस प्राप्त करने में असमर्थ हूं जिसे मैं विकसित कर रहा हूं। मैं इसे पोर्ट 80 पर असुरक्षित कनेक्शन स्वीकार करने के लिए मिल सकता है, लेकिन पोर्ट 443आईआईएस एक्सप्रेस - एसएसएल को काम करने के लिए

पर नहीं सुरक्षित मैंने निम्न चरणों का पालन, googling के आधार पर लिया:

1) मेरी आईआईएस एक्सप्रेस सर्वर के लिए SHA1 थंबप्रिंट स्थित एक VS2010 कमांडलाइन पर निम्नलिखित को क्रियान्वित करने के माध्यम से स्व-हस्ताक्षरित प्रमाणपत्र:

certmgr.exe /c /s /r localMachine MY 

परिणाम 9B088F80 A4FC3141 28F62890 70BA1FC4 49FDD009 था। मैंने बाद में सीखा कि थंबप्रिंट का उपयोग करते समय मुझे रिक्त स्थान को हटाना होगा।

2) नष्ट कर दिया गया जो कुछ प्रमाण पत्र एक ऊंचा कमांडलाइन शीघ्र पर निम्नलिखित को निष्पादित करके पोर्ट 443 से जुड़ा हुआ था:

netsh http delete sslcert ipport=0.0.0.0:443 

3) VS2010 उपकरण मेनू बंद GUID बनाएं चलाकर एक नया GUID सृजित होता है। मेरे मामले में मुझे B0421A5B-FF61-47CE-892D-11AA3A9C7D2A मिला।

netsh http add sslcert ipport=0.0.0.0:443 certhash=9B088F80A4FC314128F6289070BA1FC449FDD009 appid={B0421A5B-FF61-47CE-892D-11AA3A9C7D2A} 

5) एक ऊंचा कमांडलाइन शीघ्र से निम्नलिखित चलाकर एसीएल संशोधित::

4) एक ऊंचा कमांडलाइन शीघ्र पर निम्नलिखित को निष्पादित करके पोर्ट 443 करने के लिए स्व-हस्ताक्षरित प्रमाणपत्र स्थापित

netsh http add urlacl url=https://localhost:443/ user=everyone 

6) पोर्ट 443 और https प्रोटोकॉल के लिए बाध्यकारी जोड़कर आईआईएस एक्सप्रेस के लिए application.config फ़ाइल संशोधित करें।

 <sites> 
     <site name="Development Web Site" id="1" serverAutoStart="true"> 
      <application path="/"> 
       <virtualDirectory path="/" physicalPath="%IIS_BIN%\AppServer\empty_wwwroot" /> 
      </application> 
      <bindings> 
       <binding protocol="https" bindingInformation="*:443:localhost" /> 
       <binding protocol="http" bindingInformation="*:80:localhost" /> 
      </bindings> 
     </site> 
     <siteDefaults> 
      <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" /> 
      <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" /> 
     </siteDefaults> 
     <applicationDefaults applicationPool="IISExpressAppPool" /> 
     <virtualDirectoryDefaults allowSubDirConfig="true" /> 
    </sites> 

7) एक ऊंचा कमांडलाइन प्रॉम्प्ट पर निम्नलिखित को निष्पादित करके http सेवा को पुनः आरंभ: फाइल के लिए साइटों अनुभाग इस तरह देख समाप्त हो गया

net stop http 
net start http 

8) पर परियोजना यूआरएल परिवर्तित निम्नलिखित करने के लिए मेरे MVC परियोजना की संपत्ति पेज के वेब टैब:

http://localhost/ 

परियोजना संपत्ति पेज सहेजा जा रहा है के बाद मैं यह बदलाव किया है सर्वर की एक पुनर्विन्यासन शुरू हो गया।

जब मैं वीएस -2010 के भीतर से एमवीसी ऐप लॉन्च करता हूं तो यह सही ढंग से http://localhost (पोर्ट 80 पर, डिफ़ॉल्ट पर निर्भर करता है; मैंने पोर्ट 80 पर असुरक्षित/सामान्य कनेक्शन के साथ आईआईएस एक्सप्रेस को काम करने के लिए सभी चरणों को शामिल नहीं किया है, लेकिन वे अनिवार्य रूप से 7 के माध्यम से 5 कदम उठा रहे हैं, लेकिन http और पोर्ट 80 पर ध्यान केंद्रित करते हैं, https और पोर्ट 443 नहीं)।

हालांकि, https की आवश्यकता वाले किसी भी क्रिया में संक्रमण करने की कोशिश करने से मुझे "सर्वर से इनकार कर दिया गया" त्रुटि मिलती है।

मैं क्या गलत कर रहा हूं?

उत्तर

72

आप एक परियोजना IISExpress, प्रेस F4 उपयोग करने के लिए सेट करने के बाद, जबकि परियोजना समाधान एक्सप्लोरर गुण को लाने के लिए पर और गुणों में चयनित है SSL Enabletrue सेट और SSL URL तहत पोर्ट के साथ URL सेट सेट (443 आपके मामले में) आप एसएसएल के लिए चाहते हैं।

यह मेरे लिए हुड के नीचे जाने के बिना काम करता है और स्वयं हस्ताक्षरित प्रमाणपत्र स्वचालित था।

डिफ़ॉल्ट रूप से उस यूआरएल पर प्रोजेक्ट को चलाने के लिए आपको सही https://localhost:443

+2

वाह! यह सुनिश्चित है कि मेरी खोज में जो कुछ मैंने पाया उससे काफी आसान है। मुझे इसे आज़मा देना होगा। –

+4

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

+1

हां, जरूरी सरल उत्तर जो आवश्यक है। विजुअल स्टूडियो 2012 में – jbtule

6

मैंने जवाब में ठोकर खाई।

चरण 6 में, मैं गलत आईआईएस एक्सप्रेस application.config फ़ाइल को संशोधित कर रहा था। यह पता चला है कि एप्लिकेशन की होम निर्देशिका में एक "मास्टर" कॉन्फ़िगरेशन फ़ाइल है (उदा।, C:\Program Files (x86)\IIS Express\AppServer, मेरे सिस्टम पर), जिसे मैंने संशोधित किया है।

दूसरा और संशोधित करने के लिए सही फ़ाइल उपयोगकर्ता डेटा क्षेत्र में एक है (उदा।, C:\Users\Mark.ARCABAMA\Documents\IISExpress\config, मेरे सिस्टम पर)।

2

के साथ इस परियोजना का चयन करें गुण, फिर वेब पर क्लिक करें और परियोजना यूआरएल की जगह ले सकता आप jbtule के चरणों का अनुसरण किया और SSL अभी भी काम नहीं कर रहा , सुनिश्चित करें कि आपका पोर्ट :443XX प्रारूप में है।

विजुअल स्टूडियो ने एसएसएल को सक्षम करने वाली पहली परियोजना के लिए यह स्वचालित रूप से किया था, लेकिन किसी भी बाद की परियोजनाओं में यादृच्छिक एसएसएल पोर्ट हैं। इसे Project > Web UI के तहत उपरोक्त 443 संरचना में बदलकर इसे मिला और मेरे लिए काम कर रहा है।