2017-09-22 1 views
0

우리는 .Net 프레임 워크 (net452)에서 실행되고 Web App로 Azure에서 호스팅되는 Asp.Net 핵심 웹 애플리케이션을 보유하고 있습니다.Azure Web App - http에서 https 로의 모든 트래픽 리디렉션

모든 HTTP 요청을 https로 리디렉션하려고합니다.

나의 현재 이해는 다음과 같습니다

  1. 내가 응용 프로그램 로의 web.config에서 IIS 재 작성 규칙을 지정할 수없는 Asp.Net 핵심 응용 프로그램
  2. 나는 마이크로 소프트를 사용할 수 있습니다. 2.0.3.0 버전의 AspNetCore.Rewrite 미들웨어. 은 .Net Standard 2.0이 필요하고 net452는 .Net Standard 만 지원합니다. 1.5.

위의 내용이 맞다면 어떻게하는 것이 가장 좋을까요? 그것이 IIS 설정이기 때문에 현재 미들웨어의 작은 조각을 작성하는 고려하지만, 더 쉬운 방법이있을 것 같은 느낌이 든다있어

...

답변

1

내가 정말 포인트 1. 에 대한 의심한다. <system.webServer> 아래의 항목은 PHP/Java/pureHtml 응용 프로그램을 사용하는 경우에도 IIS와 관련이 없으며 해당 섹션을 사용하여 다시 쓰기 규칙을 추가 할 수 있습니다. 요청이 응용 프로그램에 도달하기 전에 다시 쓰기가 수행됩니다. 하늘색 응용 프로그램의 경우 ARR을 사용하도록 설정해야하지만 재 작성 규칙과 관련하여 문제가 있었지만 최근에는 새로운 Azure 응용 프로그램에서 PHP 응용 프로그램에 대한 규칙을 설정 했으므로 이제는 정상적으로 작동해야합니다.

+0

우리는 IIS가 작동의 Web.config의 규칙을 다시 작성 사용하고 있습니다. – TonE

0

앱 서비스 custom extension을 사용하십시오.

예를 들어 HTTPS를 통해 트래픽을 강제로 확장하는 확장 프로그램이 있습니다 (이 경우 post에 설명되어 있음).

0

This은 모든 http 트래픽을 https로 리디렉션합니다. 또한 사이트 예열 요청이 처리되는지 확인하여 사이트 스왑 및 항상 켜기 시나리오에서 올바르게 작동하게합니다.

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document- 
Transform"> 
<location path="%XDT_SITENAME%" xdt:Transform="InsertIfMissing" 
xdt:Locator="Match(path)"> 
<system.webServer xdt:Transform="InsertIfMissing"> 
    <applicationInitialization xdt:Transform="InsertIfMissing"> 
    <add initializationPage="/" xdt:Transform="InsertIfMissing"/> 
    </applicationInitialization> 

    <rewrite xdt:Transform="InsertIfMissing"> 
    <rules xdt:Transform="InsertIfMissing"> 
     <rule name="Force HTTPS" enabled="true" stopProcessing="true"> 
     <match url="(.*)" ignoreCase="false" /> 
     <conditions> 
      <add input="{HTTPS}" pattern="off" /> 
      <add input="{WARMUP_REQUEST}" pattern="1" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" 
appendQueryString="true" redirectType="Permanent" /> 
     </rule> 
    </rules> 
    </rewrite>  
</system.webServer> 

관련 문제