본문 바로가기
리눅스(Linux)/CentOS

[CentOS 7/8] HTTPS 서비스를 위해 사설 SSL 인증서 생성하기

by 연구자 공학코드 2022. 5. 28.

공지사항

  1. 제가 운영하는 네이버 카페 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.

728x90
반응형

HTTPS 등 SSL을 이용한 암호화 통신을 생성하기 위해서는 SSL 인증서가 필요하다. 공인된 SSL 인증서를 쓰는 방법이 가장 좋겠지만 비용이 발생하고 굳이 공인된 SSL이 필요하지 않은 경우 사설(Private) SSL 인증서를 생성하여 사용하는 것이 편리하다. 이 글에서는 CentOS에서 OpenSSL을 이용한 사설 SSL 인증서를 생성하는 법에 대해서 다룬다. 편의를 위해서 아래의 경로에서 작업을 수행한다.

  • 작업 경로: /etc/pki/tls/certs

1. OpenSSL을 설치한다.

아래의 명령어를 입력하여 OpenSSL을 설치한다.

yum install openssl
openssl version

OpenSSL이 설치된 화면

2. 루트 인증서 키를 생성한다.

아래의 명령어를 입력하여 루트 인증서 키를 생성한다.

openssl ecparam -out rootca.key -name prime256v1 -genkey
cat rootca.key

루트 인증서 키를 생성한 화면

3. 루트 인증서 CSR 생성

아래의 명령어를 입력하여 CSR(Certificate Signing Request, 인증서 서명 요청) 파일을 생성한다.

openssl req -new -sha256 -key rootca.key -out rootca.csr

루트 인증서 CSR 파일을 생성한 화면

4. 루트 인증서 생성 및 자체 서명

아래의 명령어를 입력하여 루트 인증서를 만들고 자체 서명한다.

openssl x509 -req -sha256 -days 999999 -in rootca.csr -signkey rootca.key -out rootca.crt
cat rootca.crt

자체 서명한 루트 인증서(CA) 파일을 생성한 화면

5. 서버 인증서 키 생성

아래의 명령어를 입력하여 서버 인증서 키를 생성한다.

openssl ecparam -out server.key -name prime256v1 -genkey
cat server.key

서버 인증서 키 파일을 생성한 화면

6. 서버 인증서 CSR 생성

아래의 명령어를 입력하여 서버 인증서 CSR을 생성한다

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

적절하게 내용을 입력하는 화면
서버 인증서 CSR 파일이 생성된 화면

7. 서버 인증서 생성 및 루트 인증서 키로 서명

아래의 명령어를 입력하여 서버 인증서를 만들고 루트 인증서 키로 서명한다.

openssl x509 -req -sha256 -days 999999 -in server.csr -CA rootca.crt -CAkey rootca.key -CAcreateserial -out server.crt
cat server.crt

서버 인증서 파일이 생성된 화면

8. 서버 인증서 정보 확인

아래의 명령어를 입력하여 서버의 인증서 정보를 확인한다.

openssl x509 -in server.crt -text -noout

서버 인증서 정보가 나타난 화면

9.서버 인증서와 루트 인증서를 합친 파일 생성

아래의 명령어를 입력하여 웹(HTTPS) 서비스에 적용할 수 있는 인증서 파일을 생성한다.

cat server.crt rootca.crt > server.pem
cat server.pem

웹 서비스를 위한 인증서 파일이 생성된 화면

10. SELinux 설정

아래의 명령어를 입력하여 인증서 파일이 인식될 수 있도록 보안 정책을 수정한다.

chcon -R -t httpd_config_t rootca.crt rootca.csr rootca.key rootca.srl server.crt server.csr server.key server.pem
728x90
반응형

댓글