Redirecționarea URL nu funcționează în IIS 7.5 (Administrarea sistemului, Redirecționare, Iis 7.5, Https, Url)

user3056216 a intrebat.

Mă confrunt cu o problemă de redirecționare a serviciului meu web HTTPS de la HTTP.

Am aplicat certificatul CA SSL la serviciul meu web și folosind URL Rewrite, am făcut modificările pentru redirecționare în IIS 7.5.

Iată configurația pe care am primit-o în web.config:

<rule name="Redirect to HTTPS" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTPS}" pattern="^OFF$" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>

Dar fără a debifa Require SSL pentru serviciul meu web, nu pot redirecționa de la HTTP la HTTPS, unde primesc o eroare 403.4.

Când am încercat să adaug o pagină de eroare cu codul 403.4, nu o acceptă și îmi spune că nu putem adăuga codul 403.3. Acceptă doar 403, 404, etc.

1 răspunsuri
Mathias R. Jessen

Caseta de selectare „Require SSL” este exact ceea ce face ca toate cererile HTTP obișnuite să primească înapoi un HTTP 403. Debifarea acesteia nu „sparge SSL” sau ceva de genul acesta, ci doar permite IIS să servească un răspuns pentru cererile HTTP

Există 2 abordări în acest sens:

  1. Debifați caseta de selectare „Require SSL” de pe site-ul web și rescrieți toate cererile HTTP cu URL Rewrite.
  2. Păstrați setarea „Require SSL” activată
    • Eliminați toate legăturile non-HTTPS de pe site-ul web
    • Creați un nou site web fictiv cu legăturile HTTP pe care le-ați eliminat de pe site-ul web real
    • Utilizați URL Rewrite pentru a redirecționa toate cererile de pe site-ul fals către site-ul real prin https.

Prima abordare este cea mai ușor de implementat și de întreținut, dar cea de-a doua opțiune oferă o protecție suplimentară prin faptul că IIS va genera o eroare (în loc să servească conținut non-http) în cazul în care modulul URL Rewrite eșuează din orice motiv.

Comentarii

  • Vă mulțumim pentru abordări!!! Aici motivul pentru care implementez redirecționarea HTTP este că , am implementat serviciul web cu HTTP și fără SSL. URL-urile sunt codificate în aplicația client și mulți utilizatori le folosesc. Acum am dori să implementăm HTTPS prin aplicarea unui certificat SSL. Așa că am implementat rescrierea URL-ului și am debifat opțiunea Require SSL, care nu va da o eroare 403. Singurul lucru care mă îngrijorează este faptul că debifarea SSL cauzează vreun dezavantaj al implementării SSL? Vă rog să mă lămuriți… –  > Por user3056216.
  • Există vreo șansă să știți de ce trebuie debifat SSL Required pentru ca URL Rewrite din HTTP > HTTPS să funcționeze? –  > Por Joseph Casey.
  • @JosephCasey Pentru că, altfel, IIS ar răspunde cu HTTP 403 și nu vă permite (dvs. = modulul de rescriere), să rescrieți cererea. Cu alte cuvinte, atunci când IIS primește o cerere, se uită mai întâi dacă cererea este permisă și dacă este conformă cu așteptările sale, înainte de orice altceva este permis să aibă loc –  > Por Mathias R. Jessen.