Server

SSL 인증서 생성하기 (HTTPS)

SambaLim 2021. 5. 18. 19:21

웹서비스에 https를 적용할 경우, SSL 인증서를 VeriSign이나 Thawte, GeoTrust 등에서 인증서를 발급받아야 하지만, 비용이 발생하므로 스스로 인증기관을 만들어 SSL 인증서를 발급하여 사용하곤 합니다.

Ubuntu 18.04에 OpenSSL이 설치되어있어 스스로 서명한 ROOT CA(Self Signed Certificate)를 생성하여 사용하려고합니다.

OpenSSL

pem과 crt를 발급받는 전체 과정이 포함되어있습니다. 급하신분은 하단 ex. 이후의 스크립트를 복사해서 사용해도 좋습니다.

RSA 개인키 생성

# OpenSSL 접속
$ openSSL

# 접속 후
OpenSSL> genrsa -out [[원하는 경로]]/[[파일명]].key 2048
# ex. genrsa -out /home/ubuntu/workspace/ssl/mockprivate.key 2048

RSA 공개키 생성

OpenSSL> rsa -in [[앞서 생성한 개인키]] -pubout -out [[원하는 경로]]/[[파일명]].key
# ex. rsa -in /home/ubuntu/workspace/ssl/mockprivate.key -pubout -out /home/ubuntu/workspace/ssl/mockpublic.key

CSR(인증요청서) 생성

OpenSSL> req -new -key [[앞서 생성한 개인키]] -out [[원하는 경로]]/[[파일명]].csr
# ex. req -new -key /home/ubuntu/workspace/ssl/mockprivate.key -out /home/ubuntu/workspace/ssl/mock.csr

이것저것 입력하라 나오는데 읽으면서 입력해줍니다.

CA 생성

OpenSSL> genrsa -aes256 -out [[원하는 경로]]/[[CA 이름]].key 2048
# ex. genrsa -aes256 -out /home/ubuntu/workspace/ssl/mockRootCA.key 2048

# 비밀번호 입력
Enter pass phrase for [[원하는 경로]]/[[CA 이름]].key: 

pem 생성

OpenSSL> req -x509 -new -nodes -key [[앞서 생성한 CA Key]] -days 3650 -out [[원하는 경로]]/[[파일명]].pem
# ex. req -x509 -new -nodes -key /home/ubuntu/workspace/ssl/mockRootCA.key -days 3650 -out /home/ubuntu/workspace/ssl/mockRootPEM.pem

'CSR(인증요청서) 생성'때와 유사하게 나라, 지역등을 물어보는데 동일하게 작성하면 됩니다.

CRT 생성

OpenSSL> x509 -req -in [[앞서 생성한 CSR]] -CA [[앞서 생성한 PEM]] -CAkey [[앞서 생성한 CA Key]] -CAcreateserial -out [[원하는 경로]]/[[파일명]].crt -days 3650
# ex. x509 -req -in /home/ubuntu/workspace/ssl/mock.csr -CA /home/ubuntu/workspace/ssl/mockRootPEM.pem -CAkey /home/ubuntu/workspace/ssl/mockRootCA.key -CAcreateserial -out /home/ubuntu/workspace/ssl/mockCRT.crt -days 3650

참고 문서

'Server' 카테고리의 다른 글

세션과 쿠키의 차이  (2) 2019.01.29