SSL 종료 및 ASP.NET

기술 자료 번역 기술 자료 번역
기술 자료: 910444 - 이 문서가 적용되는 제품 보기.
ASP.NET 지원 음성 열

SSL 종료 및 ASP.NET

사용자의 요구에 칼럼을 우리는 관심 있는 주제에 대한 아이디어를 제출할 수 초대할 및 향후 기술 자료 문서 및 Support Voice 칼럼에서 확인할 문제를 해결했습니다. 아이디어 및 Ask For It 양식을 사용하여 의견을 제출할 수 있습니다. 폼 아래쪽에 있는 이 열의 .에 대한 링크 모음도
모두 확대 | 모두 축소

이 페이지에서

ASP.NET Support Voice 열 환영합니다! 내 이름 제리 Orman 있습니다. Microsoft에 5 년이 넘는 것 및 대부분의 Microsoft FrontPage가 및 Microsoft SharePoint 제품 및 기술 등의 웹 관련 기술에 중점을 내 시간이 소요된. 작년 같은 지원 엔지니어는 Microsoft ASP.NET 작업 소요된 것입니다. 이번 달 필자는 SSL 종료 및 ASP.NET에 대한 대화하려면 거야. 특히 서버 구성에서 발생할 문제를 중점적으로 할. SSL 종료 및 이 구성의 일부 부작용이 응용 프로그램을 살펴보십시오 알아보겠습니다.

SSL 종료 코드를 실행하는 웹 서버에 보내는 및 HTTP를 통한 트래픽을 받는 구성 요소이며 데이터를 암호화하고 장치를 웹 서버와 클라이언트 간의. 이 구성에서 클라이언트는 보내기 및 받기를 HTTPS 트래픽이 있습니다. SSL 종료 구성 다음과 유사합니다.
클라이언트 < ? HTTPS ? > SSL 장치 < ? HTTP ? > 웹 서버
이제 이 구성을 사용하면 Microsoft ASP.NET 2.0에서 제공되는 두 문제 및 문제를 해결하려면 몇 가지 가자.

문제를 1

ASP.NET 2.0 메뉴 컨트롤의 메뉴 항목을 가리킬 때 다음 오류 메시지가 나타날 수 있습니다.
이 페이지는 보안된 항목과 보안되지 않은 항목을 포함합니다. 보안되지 않은 항목을 표시하려면 선택하십시오.
응용 프로그램 보안, SSL 프로토콜을 사용하고 있고 절대 경로를 HTTP로 다시 렌더링하는 컨트롤을 추가한 예상한 주소. 이 메시지는 무엇입니까?

음, Menu 컨트롤을 iFrame 개체를 플라이아웃 메뉴를 만드는 데 사용하는 일부 JavaScript 내보냅니다 문제입니다. 프레임의 시작 URL을 제공할 수 있습니다. 비 SSL 시나리오를 위해 서버에 불필요한 라운드트립이 피해야 스크립트를 사용하여 에 대한: 빈에 대한 URL입니다. 그러나 위의 오류가 있으므로 브라우저에서 이 보안되지 않은 주소를 간주합니다. Microsoft Windows SharePoint Services 측면에서 이 문제에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
837850Windows SharePoint Services 또는 Microsoft 에서 SharePoint Team Services 문서 라이브러리의 폴더 보기를 클릭합니다 "이 이 페이지는 보안된 항목과 보안되지 않은 항목을 포함합니다." 메시지가 나타난다
웹 서버가 SSL 장치 대신 HTTPS 트래픽을 받는 경우에는 Menu 컨트롤을 내보냅니다 JavaScript iFrame 개체의 원본 페이지의 HTTPS 주소로 서버에 설정된 코드 줄을 추가할 때와 때문에 명시적으로 비 SSL 시나리오를 언급하지. 다른 요청을 시작하는 있지만 오류 메시지가 없습니다. 이 환경 유형을 배포하는 경우, JavaScript Menu 컨트롤을 사용하여 페이지에 이 코드를 추가하여 오류 메시지가 나타나지 않도록 하려면 더하기 강제할 수 있습니다.
 <script runat="server">
   protected override void Render(HtmlTextWriter writer) 
   {
        Page.ClientScript.RegisterStartupScript(typeof(Page), "MenuHttpsWorkaround", 
        Menu1.ClientID + "_Data.iframeUrl='https://myserver/someblankpage.htm';", true);
        base.Render(writer);
   }
</script>
 
MasterPage 클래스 또는 UserControl 클래스는 메뉴 있어야 하며 이 코드를 한 번만 추가할 수 것이 가장 좋습니다.

문제 2

해당 <forms>requireSSL 특성이 있는 경우, 찾을 수 있습니다. 요소에 true 로 설정하면 서버는 반복되는 리디렉션이 FormsAuthentication 로그인 페이지로 응답합니다. 이 FormsAuthenticationModule 메서드는 requireSSL 특성을 처리하는 방식에 변경 때문에 발생합니다. requireSSL 특성을 true 로 설정하면 FormsAuthenticationModule 메서드는 보안 특성이 설정된 쿠키를 만듭니다. (이 동작은 .NET Framework 1.1 에서와 에서 동일합니다.) 보안 특성을 사용할 때 클라이언트가 SSL을 사용하는 경우 클라이언트가 경우에만 쿠키가 서버로 전달합니다. 클라이언트가 실제로 SSL을 사용하고 있기 때문에 매우 부분입니다. 익명 사용자가 액세스할 수 없는 SecurePage.aspx 페이지가 있다고 가정해 보겠습니다. SSL 프로토콜 및 requireSSL 특성을 사용하면 SecurePage.aspx 경우 초기 요청에 대해 다음과 같은 트래픽 결국:
? > 클라이언트 SecurePage.aspx에 대한 GET 요청을 만듭니다.

<(HTTP 302 (리디렉트) 로그인 페이지로 서버가 응답합니다.

? > 클라이언트 Login.aspx에 대한 GET 요청을 만듭니다.

<-서버 함께 200 OK 응답합니다. 로그인 페이지는 클라이언트에 렌더링됩니다.

? > 클라이언트 Login.aspx로 POST 요청을 만듭니다.

<-SecurePage.aspx 수 302 (리디렉트) 서버가 응답합니다. 쿠키 헤더 집합을 사용하여 보낸 경우클라이언트 보안 특성입니다.

? > 클라이언트 GET 요청을 SecurePage.aspx 수 있습니다. 클라이언트가 SSL 사용 중이므로 쿠키가 전달됩니다.

<-서버 로그인 페이지로 302 (리디렉트) 응답합니다.

사용자가 리디렉션 마지막 요청을 FormsAuthenticationModule 클래스의 변경으로 인해 얻을 수 있습니다. ASP.NET 2 .0의 사용자 보안 쿠키 통한 비 SSL 요청을 전달하고 있습니다 여부를 확인하려면 추가 확인란의 추가되었습니다. ASP.NET 2.0 FormsAuthentication.RequireSSL 속성을 false 로 설정된 경우 또는 Request.IsSecure 특성이 true 로 설정된 경우 FormsAuthenticationTicket 클래스를 반환합니다.
  • requireSSL 특성이 false 로 구성 파일에 설정되어 있으면 FormsAuthentication.RequireSSL 속성은 false 로 설정되어 있습니다.
  • 웹 서버가 SSL 트래픽을 받는 경우 Request.IsSecure 특성이 true 로 설정되어 있습니다.
이 시나리오에서 웹 서버는 SSL 트래픽을 받지 않는 requireSSL 특성이 true 로 설정되어 있으므로, 검사 둘 다 false 를 반환합니다. 따라서 FormsAuthenticationTicket 클래스 않는 반환되고 쿠키가 Request.Cookies 컬렉션에서 제거됩니다.

서버가 사용자 자격 증명을 아직 확인되지 않았습니다 사용자가 만드는 요청을 시점에서 익명 때문입니다. 요청을 통해 ASP.NET 파이프라인을 통과할 때 UrlAuthorizationModule 클래스 사용자가 해당 페이지에 액세스할 수 있는지 여부를 확인합니다. 익명 사용자가 SecurePage.aspx 페이지에 액세스할 수 없으므로 UrlAuthorizationModule 클래스는 로그인 페이지로 리디렉션에서 결과 401 오류 메시지 (액세스가 거부되었다는)를 반환합니다.

이 동작을 방지하려면 먼저 에서 <forms>requireSSL 특성을 제거하려면 합니다. 구성 파일에서 태그. 프로그래밍 방식으로 보안 특성에 대한 FormsAuthentication 설정해야 다음 쿠키를. 다음 코드에서는 이, FormsAuthentication 쿠키와 세션 쿠키가 수행합니다.
void Application_EndRequest(object sender, EventArgs e)
{
     if (Response.Cookies.Count > 0)
     {
          foreach (string s in Response.Cookies.AllKeys)
          {
               if (s == FormsAuthentication.FormsCookieName || s.ToLower() == "asp.net_sessionid")
               {
                    Response.Cookies[s].Secure = true;
               }
          }
     }
}

참조

Menu 컨트롤에 대한 자세한 내용은 다음 MSDN) Microsoft 개발자 네트워크 (웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/2xt3t8a7(vs.80).aspx
자세한 내용은 FormsAuthentication.RequireSSL 속성의 requireSSL 특성에 대한 다음 MSDN 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.requiressl.aspx
자세한 내용은 HttpRequest.IsSecureConnection 속성의 IsSecure 특성에 대한 다음 MSDN 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/system.web.httprequest.issecureconnection(vs.71).aspx
FormsAuthenticationModule 클래스에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationmodule.aspx
UrlAuthorizationModule 클래스에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/system.web.security.urlauthorizationmodule.aspx


SSL 종료 및 Microsoft ASP.NET 사용 중인 경우 이 정보가 도움이 볼 수 있기를 바랍니다. 기억하기 Support Voice 칼럼에서에 대해 있습니다! 항상 그렇듯이 향후 열이 해결된 원하는 주제를 또는 Ask For It 양식을 사용하여 기술 자료의 아이디어를 제출할 자유롭게.

속성

기술 자료: 910444 - 마지막 검토: 2007년 11월 22일 목요일 - 수정: 1.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ASP.NET 2.0
키워드:?
kbmt kbhowto kbasp KB910444 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com