티스토리 뷰

1. IIS Server 의 설치

1) 서버 관리자를 실행하면 아래와 같은 화면이 나타난다. 이곳에서 역할 및 기능 추가를 클릭한다. 

2) 마법사의 실행과 동시에 아래와 같은 화면이 나타난다. 이곳에서 [다음]을 클릭한다. 

3) 설치 유형을 선택하는 화면이 나타난다. 이곳에서 [역할 기반 또는 기능 기반 설치]를 선택하고 [다음]을 클릭한다. 

4) 서버를 선택하는 화면이 나타난다. [서버 풀에서 서버 선택]하고 서버 풀에서 [설치하고자하는 서버]를 선택하고 [다음]을 클릭한다.

5) 서버의 역할을 선택하는 화면이 나타난다. [운영에 필요한 옵션]을 선택하고 [다음]을 클릭한다.  기본적인 옵션에서 보안 관련 옵션들은 아래 화면을 참고하여 선택하면된다.

6) 기능을 선택하는 화면이 나타난다. 특별한 내용이 없으며 필요시 추가하여 설치하면 된다. [다음]을 클릭한다. 

7) 앞에서 설치를 위하여 선택한 항목들을 확인하는 화면이 나타난다. [필요한 경우 자동으로 대상 서버 다시 시작]을 선택하고 [설치]를 클릭한다. (가동중인 서버라면 서버 다시 시작 옵션은 상황에 따라 판단해야 한다.)

8) 결과 화면이 나타난다. 설치가 진행중인 내용이 보이며 중간에 [닫기]를 선택해도 계속해서 설치를 한다.  설치가 완료 될 때까지 기다리면 된다. 

9) 마지막으로 [시작 -> Window 관리 도구]를 선택하면 아래와 같이 IIS(인터넷 정보 서비스)관리자가 설치되어 있음을 확인할 수 있다. 

2. IIS에서 ASP.Net Core3.x를 운영하기 위한 프로그램 추가 설치

1) ASP.Net Core Module 설치 하기 

IIS에서 ASP.Net Core를 서비스 하려면 ASP.Net Core 3.x Runtime - Windows Hosting Bundle Installer를 설치해야 한다.  설치하지 않을 경우 Web API가 정상적으로 작동하지 않는다. 

다운 로드 경로는 아래와 같다.

https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-3.1.0-windows-hosting-bundle-installer

 

 

Download ASP.NET Core 3.1 Runtime (v3.1.0) - Windows Hosting Bundle Installer

Supported on Windows, Linux, and macOS Get Started

dotnet.microsoft.com

 

3. IIS HTTP Service 설정하기 

1) HTTP Service에서 사용 할 index.html 파일 작성하기

아래 내용을 notepad를 실행하고 입력한다. 입력이 끝나면 [index.html]로 파일이름을 지정하고 [저장]한다.

<html>
<body>
<p>Hello World</p>
</body>
</html>

2) HTTP Service에서 사용할 폴드 작성하기 

HTTP Service에 사용할 파일 경로를 작성한다. 테스트를 위해서[C:\HttpService]의 폴드를 작성한다. 

폴드를 열고 앞에서 작성한 [index.html] 파일을 옮겨 놓는다. 

3) HTTP Service 설정하기 

IIS를 실행하고 [사이트], [웹사이트추가]를 클릭한다. 

 

웹사이트를 추가하고 나면 아래 화면을 볼 수 있다.  각각의 항목에 맞게 내용을 입력해야 한다. 

- [사이트이름]은 HTTP Service가 여러개 있을 때 구분하기 위한 이름이다. 

- [실제경로]는 HTTP Service에서 제공될 컨텐츠가 저장된 경로이다. 앞에서 지정한 [C:\HttpService]를 선택한다. 

- [연결계정]은 HTTP Service에서 사용하게될 사용자 계정을 의미한다.

- [바인딩종류]는 HTTP Service를 사용할 예정으로 [http]를 선택한다. 

- [IP]주소는 HTTP Service에서 사용하게될 IPADDRESS를 의미한다. 

- [포트]는 HTTP Service에서 사용하게될 PORT로 Default 값이 [80]이다. 

- [호스트이름]은 IP ADDRESS에 연결된 DNS주소를 의미한다. 없을 경우 비워 놓으면 된다. 

위 내용이 입력되었으면 [확인]을 클릭한다. 
※ 사용자 계정 만들기 

[컴퓨터관리], [시스템도구], [로컬 사용자 및 그룹], [사용자]에서 마우스를 오른쪽 클릭하고 새 사용자를 선택하고 사용하고자 하는 ID와 PASSWORD를 입력하여 사용자 계정을 생성한다.  IIS에서 사용할 계정은 특수한 소속 그룹의 권한을 가지고 있어야 하는데 [사용자ID],[속성]을 선택하고 난 후 소속그룹에[Users]는 삭제하고 [IIS_IUSERS]를 추가한다. 

 

4) HTTP Service 가동여부 확인하기 

[Web Browser]를 실행하고 주소창에 [http://localhost/]를 입력하고 [Enter]를 누르면 아래와 같이 Http Service가 실행되는 화면을 볼 수 있다. 

4. IIS ASP.Net Core  Web API 설치하기 

1) Visual Studio에서 WebAPI 프로그램을 작성한다.

필자의 경우 아래와 같은 데모 프로그램을 작성하였다.

 

2) Web API Service가 실행될 폴드 작성하기 

필자는 [WebTest] 폴드를 생성하고 위에서 작성한 프로그램을 복사하였다. 

3) HTTP WebAPI Service 설정 하기 

IIS를 실행하고 [사이트], [웹사이트추가]를 클릭한다. 

위에서 설명한 내용과 같이 설정을 하고 난 후 [확인]을 누른다.

 

4) 응용 프로그램 풀 수정하기 

IIS에서 WebAPI를 사용하기 위해서 한가지 더 해 줘야 하는 내용이 있다. 

응용프로그램 풀에서 [.NET CLR 버전]을 [관리 코드 없음]으로 바꿔줘야 한다. 

 

5) HTTP WebAPI Service 확인하기 

[Web Browser]를 실행하고 주소창에 [http://localhost/weatherforecast]를 입력하고 [Enter]를 누르면 아래와 같이 Http Service가 실행되는 화면을 볼 수 있다. 

※ 위 주소의 경로는 프로그램에서 지정된 내용으로 사용자 마다 다를 수 있다. 

5. HTTP에서 HTTPS로 전환 하기 

1) HTTP(Hyper Text Transfer Protocol)과 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)
HTTP는 WWW에서 데이터를 주고 받을 수 있는 프로토클이다. 주로 HTML문서를 주고 받을 때 많이 사용하며, TCP와 UDP를 사용하며, 80번 포트를 사용한다.

HTTPS는 HTTP의 보안을 강화한 프로토클로 HTTP over TLS, HTTP over SSL, HTTP Secure의 형태가 있다.

 

2) SSL(Secure Sockets Layer)
SSL은 웹서버 인증 또는 서버 인증이라고도 한다. 브라우즈와 서버간의 통신 데이터를 암호화 함으로써 해킹을 통해 정보가 유출되어도 정보의 내용을 보호해 줄 수 있게 해주는 기능이다. 
아래 그림은 HTTP사이트와 SSL을 사용하는 HTTPS사이트가 운영되는 차이점을 그림으로 쉽게 보여주고 있다. 

https://sucuri.net/images/17-sucuri-a-ssl-http-vs-https-chart@2.png

3) OpenSSL 설치하기
- OpenSSL은 https://code.google.com/archive/p/openssl-for-windows/downloads 의 주소에서 다운로드가 가능하다. 필자의 경우 Window가 64bit 환경으로 아래 내용으로 선택하여 다운로드 하였다. 

4) 압축 풀기와 부족한 폴드및 파일 생성 

- openssl-0.9.8k_X64.zip 파일을 더블클릭하여 압축 풀기를 실행하면 아래와 같은 폴드와 파일이 생성된다. 
폴드를 복사하여 작업하기 편한 위치로 [이동]한다. 

 

- OpenSSL을 실행하기 전에 주의 해야 할 내용이 있다. 위 경로에서 추가로 [demoCA] 폴드를 하나 추가하고 나면 아래와 같은 폴드의 구성이 된다. 

- 다음은 demoCA 폴드 아래에 [newcerts] 폴드와 [index.txt] 이름의 TEXT파일과 [serial] 이름의 확장자가 없는 파일을 생성한다. 그리고 난 후 [serial]파일을 읽어서 [00]값을 입력하고 저장한다. 최종 작성된 폴드의 형태는 아래와 같다. 

- [serial] 파일을 메모장에서 읽어 보면 아래와 같다. [index.txt] 파일에는 인증서를 발행한 기록이 보관되며, [serial] 파일에는 인증서를 발행한 횟수가 보관된다. 

 

5) 인증서 파일 작성하기 

- 인증서 파일을 작성하기 전에 인증서의 작성을 위한 절차를 아래 그림으로 나타내었다. 

- Command 창을 실행하여 [OpenSSL] 명령을 실행하면 아래와 같은 화면을 확인할 수 있다. 

- Command 창에서 [genrsa -out SamplePrivateCa.key 1024] 명령을 실행하면 Private Key File을 생성할 수 있다.

아래 화면에서 실행 결과를 확인 할 수 있다. [SamplePrivateCa.key]는 Private Key File의 이름이며, [1024]는 암호화 길이이다. 

- Command 창에서
[req -config ./openssl.cnf -new -x509 -days 365 -key SamplePrivateCa.key -out SamplePublicCa.cer] 명령을 실행하고, [Country Name, State or Province Name, Locality Name, Organization Name, Organization Unit Name, Common Name, Email Address]를 입력하면 Public Certification File을 생성할 수 있다. 아래 화면에서 실행 결과를 확인 할 수 있다.
[365]는 유효기간이며, [SamplePrivateCa.key]는 앞에서 생성한 Private Key File의 이름이고, [SamplePublicCa.cer]는 Public Certification File의 이름이다. 

- 다음은 IIS Server에서 Application Request File을 생성해야 한다. [IIS(인터넷 정보 서비스)관리자]를 실행하면 아래와 같은 화면을 볼 수 있다.  [SERVER]를 선택하고 [서버 인증서]를 더블 클릭한다. 

- 아래 화면과 같이 서버 인증서 화면이 나타나고, [인증서 요청 만들기]를 클릭한다. 

- 인증서의 속성을 입력하는 화면이 나타나고, [일반이름, 조직, 조직구성단위, 구, 시, 국가]등을 입력하고, [다음]을 클릭한다. 

- 암호화 서비스 공급자 속성을 입력하는 화면이 나타나고 [암호화 서비스 공급자]와 [비트길이]를 선택하고, [다음]을 클릭한다.

- 파일이름을 작성하는 화면이 나타나고, [인증서 요청 파일 이름 지정]에 앞에서 작성한 Private Key File이 있는곳을 선택하여 이름을 입력하고, [마침]을 클릭한다.

- 탐색기로 이동하여 SSL을 실행한 폴드로 이동해 보면 아래와 같은 파일을 확인 할 수 있다. 

- Command 창에서 [ca -policy policy_anything -config ./openssl.cnf -cert SamplePublicCa.cer -in Sample.txt -keyfile SamplePrivateCa.key -days 365 -out SampleIIS.cer]를 실행하고 [y], [y]를 입력하면 인증서 파일을 생성 할 수 있다. 

- 탐색기에 생성된 파일을 확인하면 [SampleIIS.cer] 파일이 생성된 것을  볼 수 있다.  

6) IIS에 HTTP를 HTTPS로 설정 변경 

HTTP에서 HTTPS로 변경하기 위해서는 바인딩 옵션을 추가해야 한다. 

IIS에서 [바인딩],[추가],[종류],[SSL 인증서]를 설정변경한다. 

- [종류]는 https를 선택해야 SSL을 사용할 수 있다. 

- [SSL 인증서]위에서 작성한 인증서를 선택하면 된다. 

마지막으로 웹 서비스를 [다시 시작]을 해야 한다. 

Web Browser에서 해당 주소를 읽어보면 아래와 같은 서비스 내용을 확인 할 수 있다. 

'C# Language > C# NetCore' 카테고리의 다른 글

Open SSL 사용 방법  (0) 2021.08.09
[PLC] PLC 연계 프로그램  (0) 2019.12.18
[WCF] 5. 자체호스팅(Self Hosting)  (0) 2019.10.10
[WCF] 1. WCF 개요(WCF Overview)  (0) 2019.10.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함