IIS에서 URL Rewrite를 사용해서 HTTP요청을 HTTPS로 리다이렉트하기

프로그래밍/운영체제, 서버 2018. 8. 27. 00:07
반응형

이 글은 Windows 10의 IIS에서 테스트 되었습니다. URL 재작성을 사용하기 위해서는 웹 플랫폼 인스톨러를 통해서 URL 재작성 기능을 설치해야 합니다.


웹 플랫폼 인스톨러가 설치되어 일지 않다면 "Web Platform Installer" 에서 다운로드하여 설치합니다.


웹 플랫폼 인스톨러에서 URL 재작성 기능을 검색하여 설치합니다.




IIS 관리자에서 웹사이트를 선택하고 가운데 화면에서 "URL 재작성"을 더블 클릭합니다.




오른쪽 화면에서 "규칙 추가..."를 클릭합니다.




인바운드 규칙의 "빈 규칙" 을 선택하고 "확인" 버튼을 누릅니다.(빈 규칙을 더블 클릭해도 됩니다.)




인바운드 규칙 편집 상단의 이름과 URL 검색에 다음과 같이 입력합니다.




* 이름 : Redirect to HTTPS

* URL 검색

 - 요청한 URL(R) : 패턴과 일치

 - 사용(S) : 정규식

 - 패턴(T) : (.*)

 - 대/소문자 무시(I) : 체크



조건 영역에서 "논리 그룹화(G)""모두 일치" 를 선택하고 "추가..." 버튼을 누릅니다.




조건 추가 창에서 다음과 같이 입력합니다.




- 조건 입력(C): {HTTPS}

- 입력 문자열이 다음과 같은 경우 확인: 패턴과 일치

- 패턴(T): ^OFF$

- 대/소문자 무시 : 체크



작업 영역에서 다음과 같이 입력합니다.




- 작업 유형(Y): 리디렉션

- URL 리디릭션: https://{HTTP_HOST}/{R:1}

- 쿼리 문자열 추가(Q): 체크

- 리디렉션 유형: 기타 참조(303)



IIS관리자 오른쪽 화면에서 "적용"을 누르고 "규칙으로 돌아가기"를 누릅니다.




URL 재작성 룰이 추가된것을 확인할 수 있습니다.




이제 http:// 요청을 해보면 https:// 로 리다이렉트 되는 것을 확인할 수 있을 것입니다.


반응형

댓글을 달아 주세요

  • 쉬고싶은 개발자님 안녕하세요. iis 보안접속 관련 설정을 .. 2019.03.19 10:37  댓글주소  수정/삭제  댓글쓰기

    쉬고싶은 개발자님 안녕하세요. iis 보안접속 관련설정을 하느라 참고하여 잘 적용하였습니다.
    공유해 주셔서 감사합니다.

  • 타카스 류지 2019.09.25 17:30 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요

    iis 서버 사용중에 보안점검으로 http 접근을 https 로 리다이렉트 시켜야된다는 얘기가나와

    찾아보니 여길 방문하게 됬습니다.

    한번에 해결되서 기분이 좋네요 ^^

    내용도 퍼갈께요~

    정보 감사합니다.

  • 개심플 2019.12.17 12:17 신고  댓글주소  수정/삭제  댓글쓰기

    개발자님 문의좀 드리고 싶습니다. 제가 아예 초보라서 검색을 아무리 해도 안나옵니다.

    www.domain.com/1/ ◀ 에서 뒤에 슬래시를 안나오게 하고 싶습니다. 폴더에 www.domail.com/ 1폴더의 index.php 파일 넣었을때 www.domain.com/1 이렇게 나오게 하고 싶습니다. 슬래시 없이요

    좀 알려주실 수 있을까요? 다른분들한테 물어봐도 잘 모르시더라고요

    • pentode 2019.12.17 20:27 신고  댓글주소  수정/삭제

      URL 뒤에 붙는 Slash를 Trailing Slash라고 합니다. 이 Slash가 붙으면 디렉토리라는 뜻이 됩니다.

      이걸 왜 없애려고 하는지 모르겠는데, 기본적으로 파일인지 디렉토리인지 정확히 구분해 주는 것이 더 효율적으로 웹서버가 동작합니다.

      이걸 없애는것도 가능할것 같은데 아마도 웹서버마다 방법이 다를것입니다.

      구글에서 remove trailing slash 로 검색을 해보세요.

  • 개심플 2020.01.12 22:10 신고  댓글주소  수정/삭제  댓글쓰기

    오늘봤습니다.답변이 너무 늦었습니다.
    정성스러운 답변 감사드립니다.

    이것저것 해볼게 있는데 초보라서 너무 힘드네요.

  • ewo. 2020.01.22 14:26 신고  댓글주소  수정/삭제  댓글쓰기

    개발자님 새해 복많이 받으세요~ 글 잘봤습니다. 궁금한게 있습니다.

    1. 혹시 반대로 https에서 http으로 가게 할수있나요?
    2. 윈도우서버를 사용중인데 도메인 https 를 받으라는데 인증서를 받으려는데 다 검색해도 인증서를 받는 방법을 모르겠습니다.




    • pentode 2020.01.23 18:38 신고  댓글주소  수정/삭제

      안녕하세요.

      1. https에서 http로 보내는것도 될 것 같은데요. 이 글에서 정규식을 사용하는데 그 부분을 반대로 하면 될것 같습니다.

      2. 윈도우 서버를 사용중인데 https 서비스를 하시려는 것인가요?

      테스트용으로 localhost 를 사용해서 하려는 것이 아니고, 외부로 서비스를 하시리는 것인가요?

      외부 서비스를 위해서는 다음과 같은 사항들이 만족되어야 합니다.

      2.1 서버에 공인 IP가 할당되어 있어야 합니다.
      2.2 도메인 이름을 구매해야 합니다.
      2.3 도메인 서비스를 할 DNS 서버를 구성해야 합니다.
      (위의 2.2와 2.3은 가비아 같은 업체를 이용하면 한번에 해결 가능합니다.)
      2.4 https 서비스를 위해서 SSL 인증서를 구매해서 설치해야 합니다.
      (구글에서 검색해보면 SSL인증서를 발급하는 업체가 많이 있습니다. 아주 고가의 인증서도 있고, 무료 인증서를 발급하는 곳도 아마 있을 겁니다.)

      직접 서버를 가지고 웹서비스를 외부에 하려면 알아야 할것 들이 많이 있습니다.

      도움이 되었으면 좋겠네요. 새해 복많이 받으세요.^^

  • ewo. 2020.01.24 15:57 신고  댓글주소  수정/삭제  댓글쓰기

    글 감사합니다~ 일단 정규식? https 는 http로 하고 http는 전부 https로 했는데 되지 않습니다.
    ㅠㅠ

    그리고 인증서를 받았더니 스마트 카드?? 뭐 그런게 뜨네요 에효 돌겠네요

    • pentode 2020.02.08 19:50 신고  댓글주소  수정/삭제

      안녕하세요. 구글에서 검색을 한번 해보시길 바랍니다. 잘 안되는것들은 검색을 해보면 거의 해결되었던것 같습니다.

      웹서버에 SSL을 설치하는 것은 유료로 할 경우 SSL 인증서 발급업체에서 아주 친절하게 설명을 해주는 것으로 압니다.

      그쪽으로 문의하는것이 가장 빠를것입니다.

  • ewo. 2020.02.09 16:01 신고  댓글주소  수정/삭제  댓글쓰기

    바쁘실텐데 답변 감사드립니다~ 고맙습니다

  • wow 2020.10.22 10:06  댓글주소  수정/삭제  댓글쓰기

    깔끔한 글 감사합니다! 바로 적용되네요^~^

  • _건호_ 2021.04.07 16:17  댓글주소  수정/삭제  댓글쓰기

    관리자의 승인을 기다리고 있는 댓글입니다