SSL 인증서란?
SSL(Secure Sockets Layer) 인증서는 웹사이트와 애플리케이션에서 사용되는 디지털 인증서로, SSL 또는 더 강화된 버전인 TLS프로토콜을 지원한다. 이는 인터넷 사용자가 웹 사이트와 통신할 때 데이터를 안전하게 암호화하여 보안 위험으로부터 보호해 준다.
자체 서명 SSL 인증서 생성 및 적용 방법
0. openssl 설치
# yum install -y openssl
# openssl version #버전 확인
1. 개인 키 생성
SSL은 공개/개인 키 암호화 시스템을 사용한다. 개인 키는 서버에 저장되고, 공개 키는 서버와의 연결에서 데이터를 암호화하는 데 사용된다. openssl genrsa 명령어를 사용하여 1024bit 길이의 RSA 키를 생성한다.
# openssl genrsa -out server.key 1024
2. 인증서 서명 요청(CSR) 생성
CSR이란 SSL/TLS 인증서를 발급받기 위해 생성하는 파일로, 인증서를 신청할 때 인증기관에게 제출된다. 위에서 생성한 개인 키를 사용하여 CSR을 생성하고, 생성된 CSR 파일을 인증 기관(CA)에 제출한다. 그러면 CA는 CSR의 정보를 검토하여 유효한 인증서를 발급한다. (하지만 해당 실습의 경우에는 자체 서명 인증서를 생성하는 것이므로 CSR을 스스로 서명한다.)
# openssl req -new -key server.key -out server.csr
- Country Name : 국가 코드를 입력
- State or Province Name : 주 또는 지방 이름 입력
- Locality Name : 도시 또는 지역 이름 입력
- Organization Name : 회사명 입력
- Organizational Unit Name : 부서명 입력
- Common Name : 인증서를 사용할 도메인 이름 또는 서버의 호스트 이름 입력
- Email Address : 이메일 주소 입력
- A challenge password : CSR을 제출할 때 사용하는 추가 보안 비밀번호. 인증 기관(CA)에서 인증서 요청을 확인할 때 필요할 수 있음.
- An optional company name : 빈칸 가능
3. 자체 서명된 인증서 생성
CSR과 개인 키를 사용하여 자체 서명된 SSL 인증서를 생성한다. 자체 서명 인증서는 테스트용으로 적합이나 작은 사이트, 내부 네트워크에서 사용하기 적합하다. 상용 인증서를 구매할 경우에는 CSR을 CA에 제출하여 인증서를 발급받아야 한다.
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- req : CSR 파일을 사용하여 인증서를 생성함을 의미
- days 365 : 인증서의 유효 기간을 365일로 설정
- in : 생성할 인증서의 CSR 파일 경로를 지정
- signkey : 서명에 사용할 개인 키 경로 지정
- out : 생성된 인증서 파일의 경로 지정
생성된 파일들은 /www/conf/로 옮겨준다.
# mv server.crt /www/conf/server.crt
# mv server.csr /www/conf/server.csr
# mv server.key /www/conf/server.key
4. 인증서 적용
생성한 SSL 인증서를 Apache 서버의 설정 파일(ssl.conf 또는 httpd-ssl.conf)에 적용한다. 필요시 yum install mod_ssl 명령어로 mod_ssl을 설치한다.
# sudo yum install mod_ssl
# ls /etc/httpd/conf.d/ssl.conf
# vi /etc/httpd/conf.d/ssl.conf
...
SSLEngine on
SSLCertificateFile "/www/conf/server.crt"
SSLCertificateKeyFile "/www/conf/server.key"
...
5. Apache 재시작
변경사항을 적용하기 위해 Apache를 재시작한다.
# systemctl restart httpd
브라우저는 인증서를 확인할 때 그 인증서가 신뢰할 수 있는 CA에 의해 서명되었는지를 확인한다. 지금까지 실습한 자체 서명 인증서는 공인된 인증 기관(CA)에서 발급되지 않기 때문에 브라우저는 이를 신뢰하지 않아 경고 메시지가 나타날 수 있다.
'SW > WEB WAS' 카테고리의 다른 글
[Apache] Proxy란? Proxy 사용 목적, 종류, 설정 방법까지 (0) | 2024.09.25 |
---|---|
[Apache] 아파치 에러 페이지 설정 방법 (0) | 2024.09.24 |
[Apache] 아파치 서버 보안 설정_ 업로드 크기 제한, 이미지 도용 방지, 접근 제어 (0) | 2024.09.21 |
[Apache] 아파치 Alias, Redirect, Rewrite 설정 살펴보기 (1) | 2024.09.18 |
[Apache] mod_vhost_alias와 mod_rewrite (0) | 2024.09.17 |