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
출처 : [CentOS 7/8] HTTPS 서비스를 위해 사설 SSL 인증서 생성하기 (tistory.com)
'IT > OracleLinux-1Z0460' 카테고리의 다른 글
우분투 리눅스에서 flatpak 으로 프로그램 설치 하는 방법 (0) | 2023.08.20 |
---|---|
Linux command (0) | 2023.08.20 |
CentOS EOS(지원종료)에 따른 대응 OS 검토 방안 (0) | 2023.07.08 |
자바 SSL 인증서 파일 등록하는 방법 정리 (Keytool, Portecle 활용) (0) | 2023.04.03 |
신뢰하는 인증기관 인증서 목록(keystore)에 없는 remote site의 인증서를 JDK keystore에 추가 (0) | 2023.04.03 |