본문 바로가기
컴소니/리눅스

SSL 사설 인증서 생성하기(feat, openssl)

by 금소니 2022. 6. 18.
반응형

#223

1. SSL(Secure Sockets Layer) 인증서란?

웹 서비스를 이용하는데 신원을 확인하고 암호화 통신을 하기위해 사용되는 디지털 인증서입니다.

SSL 프로토콜을 사용하여 SSL 인증서로 불립니다.

서비스하고 있는 주체의 신원을 확인하여 피싱을 방지하고 통신을 암호화하여 주고 받는 메세지를 안전하게 보호합니다.

웹 사이트를 이용하실 때 http:// 대신 https://가 적용되어 있다면 SSL 인증서가 적용된 웹 사이트라고 보시면 됩니다.

 

2. openssl을 통한 사설 인증서 생성하기

웹 서비스를 하고 있는 조직이라면 기본적으로 제 3의 신뢰기관으로부터 인증된 인증서를 발급받아 웹 사이트에 적용하여 서비스하고 있을 것입니다.

하지만 비용이 발생하기 때문에 실제 서비스를 하고있는 경우가 아니라면 부담이 될 수 있습니다.

리눅스에서 제공하는 openssl을 통하여 개발 목적으로 사설 인증서를 발급받아 실제 적용하기 전에 테스트를 해볼 수 있습니다.

SSL 인증서의 경우 웹서비스 뿐만 아니라 타 서비스에서도 다양하게 이용할 수 있기때문에 개발자라면 생성하는 방법을 알고 있으면 좋습니다.

 

openssl 명령어 관련 사이트

 

/docs/manmaster/man1/index.html

The openssl manpage provides a general overview of all the commands.

www.openssl.org

 

한 번 생성해보도록 하겠습니다.

 

1) openssl 설치하기

yum install -y openssl

저는 이미 설치가 되어 있기때문에 별다른 결과가 없었습니다.

 

2) openssl 확인해보기

openssl

openssl을 실행시키고 아무 명령어나 입력하게 되면 사용할 수 있는 명령어가 출력됩니다.

동작에 관련한 명령도 있지만 암호화할 수 있는 방식도 설명되어 있습니다.

원하는 환경에 따라 암호화 방식을 정하여 키를 생성할 수 있습니다.

 

* 참고로  명령을 실행하실 때에는 openssl로 들어가셔서 실행하셔도 되지만 사용된 명령어를 불러오기가 어려워서 밖에서 실행하시는게 좋습니다.

 

3) CA(Certificate Authority) 개인키 생성

그럼 본격적으로 인증서 생성을 위한 작업을 진행해보도록 하겠습니다.

openssl genrsa -out rootCA.key 2048

공개키 방식인 RSA 알고리즘을 통하여 2048bit 길이의 CA 개인키를 생성하였습니다.

4) CA CSR(Certificate Signing Request) 생성하기

CSR이란 말 그대로 인증 서명 요청으로써 인증서를 발급하는데 필요한 인증 신청서입니다.

openssl req -new -key rootCA.key -out rootCA.csr

위에서 생성하였던 CA 개인키를 통하여 CSR을 생성합니다.

명령어을 입력하게 되면 위와 같이 몇 가지 정보를 입력하게 되어 있습니다.

인증서를 생성하기 위한 신청서이니 나라나 소속이 어디인지 입력하게 되어있습니다.

 

저희는 사설 인증서를 생성하고자 하니 자유롭게 작성하시면 됩니다.

아래 쪽에는 패스워드를 입력하게 되어 있는데 굳이 입력하지 않으셔도 됩니다.

 

5) CA CRT 생성하기

openssl x509 -req -in rootCA.csr -signkey rootCA.key -out rootCA.crt

우선 CA 인증서까지 생성을 완료하였습니다.

이제 본격적으로 서버에서 사용할 인증서를 생성해보도록 하겠습니다.

 

6) 서버 개인키 생성

위와 동일한 명령어로 서버 개인키를 생성합니다.

openssl genrsa -out server.key 2048

7) 서버 CSR 생성

마찬가지로 CSR도 생성합니다.

openssl req -new -key server.key -out server.csr

8) 서버 CRT 생성

이제 여기서가 중요합니다.

CA와 관련된 인증서를 만들었으니 CA로 부터 인증 받은 서버의 인증서를 생성해줘야 합니다.

openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootca.key -CAcreateserial -out server.crt

 

이제 서버에 적용할 수 있는 사설 SSL 인증서가 생성 완료되었습니다.

 

한 번 잘 활용해보도록 하겠습니다.

반응형

댓글