ASP.NET Core 응용 프로그램에 SSL 적용하기
등록일시: 2017-05-18 08:00,
수정일시: 2017-05-18 08:00
조회수: 9,131
이 문서는 ASP.NET Core 기술을 널리 알리고자 하는 개인적인 취지로 제공되는 번역문서입니다.
이 문서에 대한 모든 저작권은 마이크로소프트에 있으며 요청이 있을 경우 언제라도 게시가 중단될 수 있습니다.
번역 내용에 오역이 존재할 수 있고 주석은 번역자 개인의 의견일 뿐이며 마이크로소프트는 이에 관한 어떠한 보장도 하지 않습니다.
번역이 완료된 이후에도 대상 제품 및 기술이 개선되거나 변경됨에 따라 원문의 내용도 변경되거나 보완되었을 수 있으므로 주의하시기 바랍니다.
- 본 번역문서의 원문은 Enforcing SSL in an ASP.NET Core app docs.microsoft.com 입니다.
본문에서는 다음과 같은 내용을 살펴봅니다:
- 모든 요청에 SSL을 필수로 강제하는 방법 (HTTPS 요청만 허용하는 방법)
- 모든 HTTP 요청을 HTTPS로 재지정하는 방법
- SSL/HTTPS를 사용하도록 IIS Express를 설정하는 방법
SSL 적용하기
RequireHttpsAttribute는 SSL을 필수로 지정하기 위해서 사용됩니다. 개별적으로 컨트롤러나 메서드에 이 어트리뷰트를 지정할 수도 있고, 다음과 같이 전역으로 구성할 수도 있습니다.
Startup
클래스의 ConfigureServices
메서드에 다음과 같은 코드를 추가합니다:
// Requires using Microsoft.AspNetCore.Mvc;
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MvcOptions>(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
위의 예제에 강조된 코드는 모든 요청에 HTTPS
를 사용하도록 강제하며, 그 결과 HTTP 요청은 무시됩니다.
반면, 다음 예제에 강조된 코드는 모든 HTTP 요청을 HTTPS로 재지정합니다:
// Requires using Microsoft.AspNetCore.Rewrite;
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
var options = new RewriteOptions()
.AddRedirectToHttps();
재지정에 관한 보다 자세한 정보는 URL Rewriting Middleware 문서를 참고하시기 바랍니다.
HTTPS를 전역으로 요구하는 방식이 보안상 가장 안전한 방법입니다 (options.Filters.Add(new RequireHttpsAttribute());
).
컨트롤러나 메서드에 개별적으로 [RequireHttps]
어트리뷰트를 적용하는 방식은 프로젝트에 새로운 컨트롤러나 메서드가 추가될 경우, SSL의 보호를 받을 수 있다는 보장이 없다는 단점이 있습니다.
SSL/HTTPS를 사용하도록 IIS Express 설정하기
- 솔루션 탐색기에서 마우스 오른쪽 버튼으로 프로젝트를 클릭한 다음, 속성(Properties)을 선택합니다.
- 좌측 패인에서 디버그(Debug)를 선택합니다.
- SSL 사용(Enable SSL)을 체크합니다.
- SSL URL을 복사한 다음, 앱 URL(App URL)에 붙여 넣습니다.
- 권한부여: 개요 2017-01-14 08:00
- 권한부여: 간단한 권한부여 2017-01-14 11:00
- 권한부여: 역할 기반 권한부여 2017-01-14 14:00
- 권한부여: 클레임 기반 권한부여 2017-01-15 08:00
- 권한부여: 사용자 지정 정책 기반 권한부여 2017-01-15 11:00
- 권한부여: 요구사항 처리기와 의존성 주입 2017-01-15 14:00
- 권한부여: 리소스 기반 권한부여 2017-01-16 08:00
- 권한부여: 뷰 기반 권한부여 2017-01-16 11:00
- 권한부여: 스키마별 신원 제한 2017-01-16 14:00
- 인증: ASP.NET Core Identity 살펴보기 2017-01-30 08:00
- 인증: Facebook, Google 및 기타 외부 공급자를 이용한 인증 활성화시키기 2017-02-13 08:00
- 인증: Facebook 인증 구성하기 2017-02-13 11:00
- 인증: Twitter 인증 구성하기 2017-02-20 08:00
- 인증: Google 인증 구성하기 2017-02-20 11:00
- 인증: Microsoft 계정 인증 구성하기 2017-02-20 14:00
- 인증: 계정 확인 및 비밀번호 복구 2017-03-06 08:00
- 인증: SMS를 이용한 2단계 인증 2017-03-13 08:00
- 인증: ASP.NET Core Identity 없이 Cookie 미들웨어 사용하기 2017-03-20 08:00
- 데이터 보호: 데이터 보호 개요 2017-03-27 08:00
- 데이터 보호: 데이터 보호 API 시작하기 2017-03-29 08:00
- 데이터 보호: 소비자 APIs 개요 2017-03-31 08:00
- 데이터 보호: 용도 문자열 2017-04-03 08:00
- 데이터 보호: ASP.NET Core의 용도 계층 구조 및 다중-테넌트(Multi-Tenancy) 2017-04-05 08:00
- 데이터 보호: 비밀번호 해싱 2017-04-07 08:00
- 데이터 보호: 보호된 페이로드의 수명 제한하기 2017-04-10 08:00
- 테이터 보호: 키가 취소된 페이로드의 보호 해제하기 2017-04-12 08:00
- 데이터 보호: 데이터 보호 구성하기 2017-04-14 08:00
- 데이터 보호: 키 관리 및 수명 기본 설정 2017-04-17 08:00
- 데이터 보호: 머신 수준 정책 2017-04-19 08:00
- 데이터 보호: 비-DI 인식 시나리오 2017-04-21 08:00
- 호환성: 응용 프로그램 간 인증 쿠키 공유하기 2017-05-12 08:00
- 호환성: ASP.NET의 <machineKey> 요소 대체하기 2017-05-16 08:00
- 교차 원본 요청 활성화시키기 (CORS) 2017-05-17 08:00
- ASP.NET Core 응용 프로그램에 SSL 적용하기 2017-05-18 08:00
- 개발 중 민감한 응용 프로그램 정보 안전하게 저장하기 2017-05-19 08:00