티스토리 뷰

C# Language/C# NetCore

Open SSL 사용 방법

OManager 2021. 8. 9. 14:57

1. 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에서 사용하는 파일 형식

- PEM : Privacy Enhanced Mail Certificate

  보안 웹사이트를 인증하는데 사용하는 Base64로 인코딩된 인증서 파일로 개인키, 인증기관(CA)서버 인증서 또는 신뢰 체인을 구성하는 기타 다양한 인증서가 포함될 수 있다. Unix 기반 Apache 웹서버에서 사용한다. 

- KEY : Software License Key File 

  소프트 위어의 법적 사본을 등록할때 다양한 프로그램에서 사용하는 암호화된 키 문자열

- CER : Internet Security Certificate

  웹사이트의 신뢰성을 확인하는 VeriSign 또는 Thawte 같은 다사 인증 기관에서 제공하는 보안 파일로, 웹서버에 설치되어 서버에서 호스팅되는 특정 웹사이트의 유효성를 설정한다. 

- CSR : Certificate Signing Request File

  CSR 파일은 디지털 인증서에 대한 서명 요청으로 생성된 파일로 인증서 신청자를 식별하는 암화화된 텍스트 블럭이 포함되며 국가, 주, 조직, 도메인, 이메일 주소 및 공개키에 대한 암호화된 데이터가 포함되며, 이 파일은 인증기관에서 웹사이트의 신원 증명을 설정할 때 사용

- PFX : PKCS #12 Certificate File

  컴퓨터 또는 웹서버와 같은 사람이나 장치를 인증하는데 사용하는 보안 인증서를 저장하는 암호화된 보안 파일로 열려면 암호가 필요함

- CRT : Security Certificate

  인증서는 보안 웹사이트에서 사용하는 파일로 Verisign 또는 Thawte 같은 회사에서 배포

 

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

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

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

 

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

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

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

 

6) 인증서 파일 작성하기 

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

- 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 AuditPrivateCa.key -out AuditPublicCa.cer] 명령을 실행하고, [Country Name, State or Province Name, Locality Name, Organization Name, Organization Unit Name, Common Name, Email Address]를 입력하면 Public Certification File을 생성할 수 있다. 아래 화면에서 실행 결과를 확인 할 수 있다.
[365]는 유효기간이며, [AuditPrivateCa.key]는 앞에서 생성한 Private Key File의 이름이고, [AuditPublicCa.cer]는 Public Certification File의 이름이다. 

 

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

[PLC] PLC 연계 프로그램  (0) 2019.12.18
[NetCore] IIS를 사용하여 배포하기  (2) 2019.11.28
[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
글 보관함