IIS 7 में HTTP सख्त परिवहन सुरक्षा (HSTS) सक्षम करें


75

IIS 7 वेब सर्वर पर HTTP स्ट्रक्ट ट्रांसपोर्ट सिक्योरिटी को चालू करने का सबसे अच्छा तरीका क्या है ?

क्या मैं सिर्फ GUI के माध्यम से और उचित HTTP प्रतिक्रिया हेडर जोड़ सकता हूं या क्या मुझे appcmd का उपयोग करना चाहिए और यदि ऐसा है तो क्या होगा?


1
यह बहुत कुछ इस बात पर निर्भर करता है कि आप सामान कैसे बना रहे हैं आईआईएस सेवा कर रहा है (उदाहरण के लिए। आप अपने आवेदन में PHP या ASP.NET पृष्ठों में शीर्ष लेख सेट कर सकते हैं)। क्या आप हमें अपने उपयोग के मामले के बारे में अधिक बता सकते हैं?
voretaq7

जवाबों:


18

IIS में कस्टम हेडर को प्रतिक्रियाओं में जोड़ने की क्षमता है । यह इसके बारे में जाने का सबसे आसान तरीका प्रतीत होगा।

IIS.net पर प्रलेखन के अनुसार आप IIS प्रबंधक के माध्यम से इन शीर्षकों को जोड़ सकते हैं:

  • कनेक्शन फलक में, साइट, एप्लिकेशन या निर्देशिका पर जाएं जिसके लिए आप एक कस्टम HTTP शीर्ष लेख सेट करना चाहते हैं।
  • मुख पृष्ठ में, HTTP प्रतिसाद शीर्ष लेख पर डबल-क्लिक करें।
  • HTTP प्रतिसाद हेडर्स फलक में, क्रियाएँ फलक में जोड़ें ... पर क्लिक करें।
  • कस्टम HTTP प्रतिक्रिया शीर्ष लेख जोड़ें संवाद बॉक्स में, अपने कस्टम हेडर के लिए नाम और मान सेट करें और फिर ठीक पर क्लिक करें।

5
यह Web.config में भी संभव है, जिसे आप पसंद कर सकते हैं। मैंने विवरण को एक नए उत्तर के रूप में पोस्ट किया है, क्योंकि वे सोर्सकोड फॉर्मेटिंग के बिना पढ़ना मुश्किल है, जो टिप्पणियों में उपलब्ध नहीं है।
ओवेन ब्लैकर

3
HTTP स्ट्रक्ट ट्रांसपोर्ट सिक्योरिटी IIS IIS मॉड्यूल के निर्माताओं के अनुसार , केवल कस्टम हेडर जोड़ना मसौदा विनिर्देश (RFC 6797) के अनुरूप नहीं है। आपको वास्तव में इस IIS मॉड्यूल को स्थापित करने की आवश्यकता होगी।
क्रिस

@ क्रिस वे (थोड़े) गलत हैं। युक्ति के बारे में नहीं - वे वहां बिल्कुल सही हैं - लेकिन इस तथ्य के बारे में कि उनके मॉड्यूल से अलग का पालन करने का कोई "सरल" तरीका नहीं है: बस 2 साइटें बनाएं, एक एसएसएल के लिए (हेडर के साथ) और एक गैर-एसएसएल के लिए ( हेडर के बिना)। निश्चित रूप से मॉड्यूल थोड़ा अधिक सुरुचिपूर्ण है , लेकिन यह आवश्यक नहीं है (और यदि आपकी साइट https-only है और आप सादे HTTP प्रतिक्रियाओं की सेवा नहीं करते हैं तो यह बिल्कुल भी वारंटी नहीं है)।
voretaq7

1
@ क्रिस आपको उस मॉड्यूल को संदर्भित करने वाला एक उत्तर जोड़ना चाहिए, हालांकि - मुफ्त अपवोट्स! (मैं इसे अस्तित्व के बारे में पता नहीं था, और बहुत से लोगों के लिए यह शायद कस्टम हेडर सामान की तुलना में एक आसान / बेहतर विकल्प है)
voretaq7

112

यह हमें HTTP पुनर्निर्देशित दोनों को संभालने और एक IIS साइट (URL रिवाइटर मॉड्यूल को स्थापित करने के लिए HTTPS प्रतिक्रियाओं के साथ सख्त-परिवहन-सुरक्षा हेडर को जोड़ने की अनुमति देता है):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="HTTP to HTTPS redirect" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}"
                        redirectType="Permanent" />
                </rule>
            </rules>
            <outboundRules>
                <rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
                    <match serverVariable="RESPONSE_Strict_Transport_Security"
                        pattern=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="on" ignoreCase="true" />
                    </conditions>
                    <action type="Rewrite" value="max-age=31536000; includeSubDomains; preload" />
                </rule>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>

7
धन्यवाद, यह सबसे अच्छा जवाब है! हैडर को स्टेटिक अप्रोच के विपरीत स्थिर HTML फाइलों में भी जोड़ता है। और इस तरह मानक के अनुरूप, HTTP से नहीं जुड़ता है।
Jeow Li Huan

4
@Mathemats क्या आपने IIS में URL पुनर्लेखन स्थापित किया है?
डग विल्सन

3
नहीं, अधिक शोध के बाद मुझे पता चला कि पुनर्लेखन टैग एक्सटेंशन (डीओएच) द्वारा प्रदान किया गया है। सभी उत्तर जो मुझे मिल सकते हैं, एक निर्भरता के रूप में विस्तार का उल्लेख नहीं कर सकते हैं, शायद आप अपने उत्तर में एक लाइनर फेंक सकते हैं कह सकते हैं कि आपको इसकी आवश्यकता है।
Mathemats

2
hstspreload.org उपयोगकर्ता को `जोड़ना चाहता है; अधिभार `अधिकतम आयु मूल्य के बाद। विकल्प। पूरी लाइन होगी: hstspreload.org पर पास<action type="Rewrite" value="max-age=31536000 ;includeSubDomains; preload" /> पाने के लिए
JP Hellemons

2
कैप्चर ग्रुप R: 1 पैटर्न के साथ (। *) पूरे URL, प्रोटोकॉल और सभी से मेल खाता है, और {HTTP_HOST} / {R: 1} को संक्षिप्त करने की कोशिश की जा रही है, जिसका अर्थ है कि आप प्राप्त करते हैं https://somedomain.com/https://somedomain.com/relatedpathऔर परिणाम बंद हो जाता है।
आरोनॉल्स

38

Voretaq7 के उत्तर को पूरक करने के लिए , आप Web.config फ़ाइल (NB :) का उपयोग केवल SSL साइटों के लिए भी कर सकते हैं, क्योंकि यह HTTP और HTTPS दोनों प्रतिक्रियाओं के लिए हैडर जोड़ देगा, जो RFC 9797 विनिर्देश के विरुद्ध है, कृपया नीचे दी गई व्याख्या देखें) - एक ब्लॉक इस प्रकार जोड़ें:

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="Strict-Transport-Security" value="max-age=31536000"/>
        </customHeaders>
    </httpProtocol>
</system.webServer>

जाहिर है, आपके पास पहले से ही system.webServerआपके Web.config में एक ब्लॉक हो सकता है , इसलिए इसे इसमें जोड़ें, यदि ऐसा है। हम GUI के बजाय Web.config में चीजों को संभालना पसंद करते हैं, क्योंकि इसका अर्थ है कि परिवर्तन परिवर्तन हमारे गिट रिपॉजिटरी के लिए प्रतिबद्ध हो सकते हैं।

यदि आप HTTP- से- SSL पुनर्निर्देशन को संभालना चाहते हैं, जैसा कि ग्रेग आस्क ने उल्लेख किया है, तो आपको IIS में एक अलग वेबसाइट के साथ ऐसा करना आसान हो सकता है। यह है कि हम कुछ क्लाइंट साइटों के लिए SSL की आवश्यकता को कैसे संभालते हैं। उस साइट में केवल एक HTTP पुनर्निर्देशित है और कुछ जानकारी-प्रकटीकरण सुधार, सभी Web.config में हैं:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.web>
    <httpRuntime requestValidationMode="2.0" enableVersionHeader="false" />
  </system.web>
  <system.webServer>
    <httpRedirect enabled="true" destination="https://www.domain.co.uk/"
      httpResponseStatus="Permanent" />
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
    <rewrite>
      <outboundRules>
        <rule name="Remove RESPONSE_Server">
          <match serverVariable="RESPONSE_Server" pattern=".+" />
          <action type="Rewrite" value="" />
        </rule>
      </outboundRules>
    </rewrite>
  </system.webServer>
</configuration>

यह कुछ कारणों से हमारा पसंदीदा समाधान है - हम आसानी से पुनर्निर्देशित ट्रैफ़िक को अलग से लॉग कर सकते हैं (जैसा कि यह एक अलग IIS लॉग में है), यह Global.asax.cs में अधिक कोड शामिल नहीं करता है (हमारे पास कोई कोड नहीं है वहाँ, जो एक Umbraco साइट के लिए थोड़ा अधिक सुविधाजनक है) और, महत्वपूर्ण बात यह है कि इसका मतलब है कि सभी कॉन्फ़िगरेशन अभी भी हमारे GIT रेपो में हैं।

जोड़ने के लिए संपादित: स्पष्ट करने के लिए , RFC 6797 के अनुपालन के लिए , Strict-Transport-Securityकस्टम हेडर जरूरी नहीं है जो कि अनएन्क्रिप्टेड HTTP द्वारा किए गए अनुरोधों में जोड़ा जाए। RFC6797 के अनुरूप होने के लिए, आपके पास IIS में दो साइटें होनी चाहिए, जैसा कि मैंने पहले कोड ब्लॉक के बाद वर्णित किया है। जैसा कि क्रिस बताते हैं, RFC 6797 में शामिल हैं:

गैर-सुरक्षित परिवहन पर संप्रेषित HTTP प्रतिक्रियाओं में एक HSTS होस्ट जरूरी STS हेडर फ़ील्ड को शामिल नहीं करता है।

इसलिए Strict-Transport-Securityग्राहक के हेडर को गैर-एसएसएल अनुरोध के जवाब में भेजने से विनिर्देश का पालन नहीं होगा।


1
IIS के लिए Owen Blacker प्रतिक्रिया में जोड़ने के लिए, मैं URLScan 3.1 का उपयोग करता हूं और इसे RemoveServerHeader = 1 पर सेट करके प्रतिक्रिया से SERVER को वैश्विक रूप से हटा देता है, बाकी सेटिंग्स प्रत्येक साइट वेब .config फ़ाइल में होना अनिवार्य है। मैं इसे केवल मूल्य को कम करना पसंद करता हूं।
KeyOfJ

URLScan एक बहुत ही सामान्य समाधान है और, मैं सुझाव दूंगा कि मैं जो सुझाव दे रहा हूं, उससे बेहतर है। लेकिन यह हमेशा सबसे सुविधाजनक समाधान नहीं है: ओ)
ओवेन ब्लैकर

ध्यान दें कि HTTPS और HTTP सक्षम (ताकि यह पुनर्निर्देशित हो सके) साइट के साथ इस साइट को जोड़ना इस साइट को बना देगा! आपको लॉग-इन में कोई त्रुटि नहीं होने के साथ, कस्टमइरॉर्स मोड = "ऑफ़" के साथ भी आपको एक सूचना रहित 500 मिलेगा।
बजे क्रिस मोसची

@ChrisMoschini मुझे स्पष्ट होना चाहिए था कि SSL- केवल साइट के लिए पहली Web.config लाइन होनी चाहिए।
ओवेन ब्लैकर

1
@ लीन स्कॉट हैनसमैन ने HTTP का उपयोग करते हुए हेडर में एसटीएस क्यों नहीं है का अधिक अच्छा विवरण लिखा। यहाँ
डेविड येट्स

8

मैं आपके द्वारा संदर्भित विकिपीडिया लिंक से उदाहरण का उपयोग करूंगा और साइट के लिए Global.asax में गतिविधि करूंगा। यह किसी https url के अनुरोध को पुनर्निर्देशित करने में सक्षम बनाता है, और फिर प्रतिक्रिया में शीर्ष लेख सम्मिलित करता है।

यह HSTS हेडर को अनदेखा करने के कारण होना चाहिए, अगर यह https प्रतिक्रिया में नहीं है।

protected void Application_BeginRequest()
{
    switch (Request.Url.Scheme)
    {
        case "https":
            Response.AddHeader("Strict-Transport-Security", "max-age=31536000");
            break;
        case "http":
            var path = "https://" + Request.Url.Host + Request.Url.PathAndQuery;
            Response.Status = "301 Moved Permanently";
            Response.AddHeader("Location", path);
            break;
    }
}

3

यह ऐसा करने का एक बहुत ही सुरक्षित तरीका है। इस कोड को Global.asax में जोड़ें - Application_BeginRequest इवेंट की आग पहले Asp.net अनुरोध जीवनचक्र में: http://msdn.microsoft.com/en-us/library/system.web.httpappation.beginrequest(v=vs। 110) .aspx

कल्पना के अनुसार, http अनुरोधों को हेडर के साथ जवाब नहीं देना चाहिए - इसलिए यह कोड केवल इसे https अनुरोधों के लिए जोड़ता है। अधिकतम-आयु सेकंड की संख्या में है, और आमतौर पर एक बड़ा मूल्य यहां रखने के लिए एक अच्छा विचार है (आईई - 31536000 इंगित करता है कि साइट केवल अगले 365 दिनों के लिए एसएसएल चलाएगी)

protected void Application_BeginRequest(Object sender, EventArgs e)
{
  switch (Request.Url.Scheme)
  {
    case "https":
      Response.AddHeader("Strict-Transport-Security", "max-age=31536000");
      break;
    case "http":
      var path = "https://" + Request.Url.Host + Request.Url.PathAndQuery;
      Response.Status = "301 Moved Permanently";
      Response.AddHeader("Location", path);
      break;
  }
}

2

डग विल्सन द्वारा प्रदान किए गए उदाहरण का उपयोग करके मैंने HTTPS में पुनर्निर्देशन के लिए और HSTS शीर्ष लेख जोड़ने के लिए निम्नलिखित दो पॉवरशेल फ़ंक्शन बनाए हैं।

इनका परीक्षण विंडोज 2012 और विंडोज 2012 आर 2 पर किया गया है।

आपको बस वेबसाइट नाम की आपूर्ति करनी है। यदि आप चूक को पसंद नहीं करते हैं, तो आप वैकल्पिक रूप से नियमों को एक अलग नाम दे सकते हैं।

ध्यान देने वाली एक बात यह है कि मेरे परीक्षण से, सर्वर चर को प्रतिक्रिया शीर्षकों में होने से पहले अनुमति सूची में जोड़ा जाना चाहिए। फ़ंक्शन आपके लिए ऐसा करते हैं।

EDIT: HTTP हेडर के लिए Url Rewrite का संदर्भ यहां देखें: http://www.iis.net/learn/extensions/url-rewrite-module/setting-http-request-headers-and-iis-server-variables

Function Add-HTTPSRedirectRewriteRule()
{
    <#
        .SYNOPSIS
        This function is used to create a URL Rewrite Rule that redirects HTTP requests to HTTPS using a 301
        RuleName is optional and will default to "Redirect to HTTPS"

        .SYNTAX
        Add-HTTPSRedirectRewriteRule -WebsiteName "www.mywebsite.com"

        .EXAMPLES
        Add-HTTPSRedirectRewriteRule -WebsiteName "www.mywebsite.com"

        Add-HTTPSRedirectRewriteRule -WebsiteName "www.mywebsite.com" -RuleName "my rule name"

    #>


    [cmdletbinding(positionalbinding=$false)]
    Param
    (
        [parameter(mandatory=$true)][String] [ValidateNotNullOrEmpty()] $WebsiteName,
        [parameter(mandatory=$false)][String] $RuleName="Redirect to HTTPS"
    )

        Write-Verbose -Message "Creating the Url Rewrite rule ""$RuleName"" in website ""$WebsiteName"""
        Remove-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST" -location "$WebsiteName" -filter "system.webServer/rewrite/rules" -name "." -AtElement @{name="$RuleName"}  -ErrorAction SilentlyContinue
        Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location "$WebsiteName" -filter "system.webServer/rewrite/rules" -name "." -value @{name="$RuleName";stopProcessing='True'}
        Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location "$WebsiteName" -filter "system.webServer/rewrite/rules/rule[@name='$RuleName']/match" -name "url" -value "(.*)"
        Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location "$WebsiteName" -filter "system.webServer/rewrite/rules/rule[@name='$RuleName']/conditions" -name "." -value @{input='{HTTPS}';pattern='off'}
        Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location "$WebsiteName" -filter "system.webServer/rewrite/rules/rule[@name='$RuleName']/action" -name "type" -value "Redirect"
        Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location "$WebsiteName" -filter "system.webServer/rewrite/rules/rule[@name='$RuleName']/action" -name "url" -value "https://{HTTP_HOST}/{R:1}"
}

Function Add-HSTSHeaderRewriteRule()
{
    <#
        .SYNOPSIS
        This function is used to create a URL Rewrite Rule that sets an HTTP Response Header for Strict-Transport-Security
        when the protocol requested is HTTPS

        RuleName is optional and will default to "Add Strict-Transport-Security header when request is HTTPS"

        .SYNTAX
        Add-HSTSHeaderRewriteRule -WebsiteName "www.mywebsite.com"

        .EXAMPLES
        Add-HSTSHeaderRewriteRule -WebsiteName "www.mywebsite.com"

        Add-HSTSHeaderRewriteRule -WebsiteName "www.mywebsite.com" -RuleName "my rule name"

    #>

    [cmdletbinding(positionalbinding=$false)]
    Param
    (
        [parameter(mandatory=$true)][String] [ValidateNotNullOrEmpty()] $WebsiteName,
        [parameter(mandatory=$false)][String]$RuleName="Add Strict-Transport-Security header when request is HTTPS"
    )

    $serverVariable = "RESPONSE_Strict_Transport_Security"

    Write-Verbose -Message "Creating the HSTS Header rule ""$RuleName"" in website ""$WebsiteName"""

    Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location "$WebsiteName" -filter "system.webServer/rewrite/allowedServerVariables" -name "." -AtElement @{name="$serverVariable"} -ErrorAction SilentlyContinue
    Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location "$WebsiteName"  -filter "system.webServer/rewrite/allowedServerVariables" -name "." -value @{name="$serverVariable"}

    Remove-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST" -location "$WebsiteName" -name "." -filter "system.webServer/rewrite/outboundRules" -AtElement @{name="$RuleName"} -ErrorAction SilentlyContinue

    Add-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST" -location "$WebsiteName" -filter "system.webServer/rewrite/outboundRules" -name "." -value @{name="$RuleName"}
    Set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST" -location "$WebsiteName" -filter "system.webServer/rewrite/outboundRules/rule[@name='$RuleName']/match" -name "serverVariable" -value $serverVariable
    Set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST" -location "$WebsiteName" -filter "system.webServer/rewrite/outboundRules/rule[@name='$RuleName']/match" -name "pattern" -value ".*"
    Add-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST" -location "$WebsiteName" -filter "system.webServer/rewrite/outboundRules/rule[@name='$RuleName']/conditions" -name "." -value @{input='{HTTPS}';pattern='on'}
    Set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST" -location "$WebsiteName" -filter "system.webServer/rewrite/outboundRules/rule[@name='$RuleName']/action" -name "type" -value "Rewrite"
    Set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST" -location "$WebsiteName" -filter "system.webServer/rewrite/outboundRules/rule[@name='$RuleName']/action" -name "value" -value "max-age=31536000"

}

1

HTTP स्ट्रिक्ट ट्रांसपोर्ट सिक्योरिटी IIS IIS मॉड्यूल के निर्माताओं के अनुसार, केवल कस्टम हेडर जोड़ना मसौदा विनिर्देश (RFC 6797) के अनुरूप नहीं है।

आपको वास्तव में IIS 7 पर HSTS चालू करने के लिए इस IIS मॉड्यूल को स्थापित करने की आवश्यकता होगी ।

अपडेट 26 ओकट 2014 : नीचे दिए गए टिप्पणीकार के लिए धन्यवाद, मैंने मॉड्यूल पृष्ठ को फिर से पढ़ा और विशेष रूप से वह हिस्सा जो कस्टम हेडर जोड़ने पर मॉड्यूल के उपयोग को सही ठहराता है।

गैर-सुरक्षित परिवहन पर संप्रेषित HTTP प्रतिक्रियाओं में एक HSTS होस्ट जरूरी STS हेडर फ़ील्ड को शामिल नहीं करता है।

यदि आप HTTPS में और HTTP में केवल हेडर जोड़ना सुनिश्चित करते हैं, तो आपको इस मॉड्यूल की आवश्यकता नहीं है और आप डॉग विल्सन द्वारा उत्तर का उपयोग कर सकते हैं। ओवेन ब्लैकर के उत्तर का उपयोग न करें क्योंकि इसमें https स्थिति नहीं है।


1
तो क्या कुछ अन्य जवाब जो केवल हेडटी को एचटीटीपीएस अनुरोध भेजते हैं, इस समस्या को हल करते हैं? या क्या आपका मॉड्यूल कुछ अलग / अतिरिक्त करता है जो अन्य समाधान नहीं करता है?
slolife

@slolife मैंने अपना उत्तर अपडेट किया। आप डौग विल्सन के उत्तर में कोड का उपयोग कर सकते हैं। आपको इस मॉड्यूल की आवश्यकता नहीं है अब मैं देख रहा हूं कि स्वीकृत उत्तर की टिप्पणियों में भी इस पर चर्चा की गई है। मुझे इस मॉड्यूल के बारे में कुछ अलग / अतिरिक्त करने की जानकारी नहीं है जो अन्य समाधान नहीं करते हैं। लेकिन मैंने स्रोत कोड की संपूर्ण जांच नहीं की है ।
क्रिस

मुझे स्पष्ट होना चाहिए था कि पहले वेब.कॉन्फिग को एसएसएल-ओनली साइट में लागू किया जाना चाहिए। मैं अपना उत्तर स्पष्ट करने के लिए संपादित करूँगा।
ओवेन ब्लैकर

1

यह Web.Config में निम्नलिखित ब्लॉक जोड़कर किया जा सकता है:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name ="CustomName" value="MyCustomValue"/>
      </customHeaders>
    </httpProtocol>
</system.webServer>

हमें IIS पर कॉन्फ़िगर करना होगा जो कस्टम हेडर को प्रतिक्रिया देने की क्षमता रखता है:

  • इंटरनेट सूचना सेवाओं (IIS) प्रबंधक पर जाएं।
  • प्रतिक्रिया हेडर कॉन्फ़िगर करें जो सर्वर से प्रतिक्रिया के लिए जोड़े जाते हैं।
  • अब अपने कस्टम हेडर का नाम और कस्टम वैल्यू जोड़ें (कस्टम हेडर का नाम और मूल्य वेब में समान होना चाहिए। कॉनफिग)। आप ब्लॉग पर पा सकते हैं

0

बस जोड़ने के लिए, मैं टिप्पणियों में देखता हूं 2 लोग 500 त्रुटियों के बारे में बात करते हैं जब आप ऐसा करते हैं। मेरे पास यह था।

यदि आपको IIS में 500 त्रुटि मिलती है तो यह हो सकता है क्योंकि आपने नियम को शीर्ष स्तर पर, विरासत में दिए गए और साइट स्तर पर दोनों को जोड़ा है।

जैसे

Default Web Site <- here
  Some Web Site <- here

IIS / ब्राउज़र आपको आपकी त्रुटि से निपटने की सेटिंग की परवाह किए बिना, आपको कोई भी जानकारी देने के लिए नहीं लगता है

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