전반적인 과정
- OpenSSL 다운로드
- Private Key 생성
- 인증서 요청(CSR) 파일 생성(private.csr)
- 자체 서명하기 위해서 rootCA 생성
- 자체 서명한 인증서 생성(private.crt)
- pem 확장자로 변환
- NGINX config 파일에서 해당 파일 위치 지정
OpenSSL 다운로드
아래의 링크를 통해서 OpenSSL을 설치하도록 하자.
해당 파일을 실행해서 C드라이브에 설치해 주자.
이제 관리자 권한으로 cmd를 실행해 주자
- Config 파일 설정
> set OPENSSL_CONF=C:\Program Files\OpenSSL-Win64\bin\openssl.cfg - OpenSSL 실행
> openssl version
개인키(private key) 생성
이제 PrivateKey와 PublicKey를 생성해 보자.
명령어 : openssl genrsa -out <키 이름> 2048
예시 : openssl genrsa -out private.key 2048
해당 개인키와 쌍이 되는 공개키를 생성해 보자.
공개키 생성
명령어 : openssl rsa -in <개인키> -pubout -out <키 이름>
예시 : openssl rsa -in private.key -pubout -out public.key
개인키와 공개키가 생성되었다.
인증서 요청서 CSR(Certificate Signing Request) 생성
SSL 서버를 운영하는 회사의 정보를 암호화하여 인증 기관으로 보내 인증서를 발급받게 하는 일종의 신청서이다.
(어차피 우린 자체로 서명을 할 거지만 필요한 과정이다.)
명령어 : openssl req -new -key <개인키> -out <CRS파일명>
예시 : openssl req -new -key private.key -out private.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]:
ABC.Co
> Organizational Unit Name (eg, section) []:
abc
> Common Name (e.g. server FQDN or YOUR name) []:
www.abc.co.kr
> Email Address []:
abc@gmail.com
아래 추가 정보는 입력 안 함(빈칸으로 두고 엔터 엔터)
Please enter the following 'extra' attributes
to be sent with your certificate request
> A challenge password []:
> An optional company name []:
자체 인증하기 위해서 rootCA 생성하기
먼저 인증서의 자체 서명을 하는데 필요한 rootCA를 만들자.
(CA는 Certificate Authority를 의미한다.)
rootCA.key 생성
명령어 : openssl genrsa -aes256 -out <키 이름> 2048
예시 : openssl genrsa -aes256 -out rootCA.key 2048
비밀번호를 2번 입력해 주자.
CSR 생성하기
rootCA.key를 사용해서 10년짜리 rootCA.csr을 생성하자.
명령어 : openssl req -x509 -new -nodes -key <키 이름> -days 3650 -out <CSR 파일명>
예시 : openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.csr
CSR 직접 인증해서 CRT 생성하기
직접 만든 rootCA를 통해서 위에서 만들었던 private.csr을 직접 인증해서 private.crt를 생성한다.
명령어 : openssl x509 -req -in <csr 파일명> -CA <crt 파일명> -CAkey <키 이름> -CAcreateserial -out <CRT 파일명> -days 3650
예시 : openssl x509 -req -in private.csr -CA rootCA.csr -CAkey rootCA.key -CAcreateserial -out private.crt -days 3650
이제 인증서 모양 아이콘을 가진 private.crt 파일을 생성했다.
PEM 파일로 변경하기
NGINX에 등록하기 위해서 key와 crt 파일을 pem 파일 확장자로 변경해야 한다.
아래의 명령어를 통해서 2개의 파일을 변환해 주자.
명령어 : openssl ras -in <대상 키> -out <출력 파일명>
예시 : openssl rsa -in private.key -out private.pem
명령어 : openssl x509 -inform PEM -in <crt 파일명> -out <출력 파일명>
예시 : openssl x509 -inform PEM -in private.crt -out crt.pem
함께 읽으면 좋은 글
참고 사이트
'프로그래밍 > 네트워크' 카테고리의 다른 글
HTTPS의 동작 원리에 대해서 (1) | 2024.08.28 |
---|---|
현존 최강의 암호화 알고리즘 RSA (0) | 2024.08.27 |
IOCP 입출력 완료 포트 생성 및 연결 그리고 입출력 과정 (0) | 2024.08.07 |
MTU와 MSS란? (1) | 2024.02.05 |
공인 IP와 사설 IP에 대해서 (0) | 2024.02.01 |
댓글