안녕 세상아,

내가 OpenSSL 설치 방법 알려줄게! 얍! 본문

서버 개념

내가 OpenSSL 설치 방법 알려줄게! 얍!

돈 많은 백수가 되고싶다 2024. 8. 5. 13:38

사실 내가 나중에 보기 위한 정리..겸 지식 공유

 

혼자 프로젝트 만들 때 SSL 인증서 발급 받을 경우가 있을 것이다. 공식 인증 사이트에서 인증서를 발급 받을 수도 있지만 OpenSSL을 설치할 때의 장점이 있다. 

 

1. 교육적 가치: OpenSSL을 사용하면 SSL/TLS의 작동 방식과 인증서의 구조에 대해 더 깊이 이해할 수 있다. 또한, 개인 프로젝트를 통해 보안 프로토콜에 대해 학습하고 실험할 수 있는 좋은 기회를 제공한다. 

2. 로컬 테스트: 보통 공식 인증 사이트에서 인증서를 발급 받으면 도메인이 필요한 경우가 많은데 OpenSSL을 사용하면 IIS에서 로컬 테스트를 바로 할 수 있다. 

 

물론 이는 보안성, 신뢰성이 거의 없는 수준이기 때문에 개인 테스트용으로만 사용해야한다. 


1. OPENSSL 설치

 ->  https://slproweb.com/products/Win32OpenSSL.html (window) + 환경변수 설정(Path에 '설치 경로/bin' 추가)

 

<아래 부터는 기울임꼴 글자 cmd창에서 명령어 입력하면됨>


2. 개인키 생성 
openssl genpkey -algorithm RSA -out private.key -aes256


2-1) key usage 세부 설정하기 (개인키 생성할 때 key usage 세부 설정) -> 안해도됨 
- openssl-win64/bin/openssl.cnf 파일 다른 이름으로 복사 후 파일 수정 (메모장으로)
https://www.ibm.com/docs/en/hpvs/1.2.x?topic=reference-openssl-configuration-examples
- 일반적인 CA에서는 사용 but 이 인증서는 테스트 자체 서명 인증서로 사용되지 않도록 하는 것이 가장 좋음
- 기본적으로 생략하는 것이 가장 좋은 방법...


3. 인증서 서명 요청(CSR) 생성
openssl req -new -key private.key -out server.csr
-> CSR: 인증서 발급 받기 위한 요청서, 공용키 도메인 정보 포함
-> 몇가지 정보 추가로 입력 (자동으로 뜸)
Country Name (2 letter code) [AU]: KR
State or Province Name (full name) [Some-State]: Seoul
Locality Name (eg, city) []: Seoul
Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany
Organizational Unit Name (eg, section) []: Development
Common Name (e.g. server FQDN or YOUR name) []: IP 주소 or 도메인 주소
Email Address []: admin@example.com


4. 자체 서명 인증서 생성
CSR을 인증기관(CA)에 제출하는 대신, 자체 서명 인증서 생성
openssl x509 -req -days 365 -in server.csr -signkey private.key -out certificate.crt


5. PEM 파일 생성 (개인 키와 인증서 포함)
openssl rsa -in private.key -out private.pem - 개인키 PEM 형식으로 저장
copy private.pem + certificate.crt combined.pem - 인증서 PEM 파일에 추가
-> PRIVATE 파일에 개인키, 인증서 모두 포함
pem 파일: 노트패드에서 열기/수정 가능
개인키, 서버인증서, 루트인증서, 체인인증서 및 CSR 등 SSL 관련 모든 과정에서 사용되는 기본 포맷


6. pfx 파일로 설정 - IIS에서 사용하기 위함
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile certificate.crt
-> private.key, certificate.crt가 모두 한 폴더 내에 있어야함.
-> pfx 파일이란? 
인증서라기보다 인증서를 모아놓은 저장소, 스토어, 바구니 용도의 파일
주로 Windows IIS 기반에서  인증서 적용/이동시 활용

<결과>
1. certificate.crt, combined.pem, private.key, private.pem, server.csr 파일 나왔는데 certificate.crt 나오면 설치 완료? 
- certificate.crt 파일 생성되면, 자체 서명 인증서 완료된 것


2. 지금 한 폴더에 있는게 아니라 막 흩어져있는데 한 폴더로 저장해도돼?? 
- 오히려 좋음. 관리하기도 편하고


3. 만든 인증서 바탕으로 IIS에 ssl 적용하는 방법 
- pfx 파일 만든 후 한번 클릭해서 저장소 위치-로컬로 설정
- 메인 화면에서 서버 인증서 클릭 
- 오른쪽에서 가져오기.. 버튼 누르고 파일 가져오기
- 해당 사이트 클릭 후 화면 우측 바인딩... 버튼 클릭
  - https 설정, 포트는 기본 443, 인증서 방금 만든거 끼고 설정 완료

 

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

Minimum system requirements: Windows XP or later 32MB RAM 200MHz CPU 30MB hard drive space Recommended system requirements: Windows XP or later 128MB RAM 500MHz CPU 300MB hard drive space April 11, 2024 - OpenSSL 3.3 is available. Users should currently in

slproweb.com

 

 

'서버 개념' 카테고리의 다른 글

TCP vs UDP  (4) 2024.08.30
HTTP Method가 뭐에요?  (0) 2024.07.31
binding(바인딩) 이란?  (0) 2024.05.17
CORS 를 아시나요...?  (0) 2024.05.16
HTTP 상태코드  (0) 2024.04.04