네트워크 및 서버/서버

HTTPS/SSL, HTTPS Apache 적용

잉여토끼 2024. 9. 10. 18:25

 

http --> 데이터를 평문으로 전송

스니핑 및 프푸핑에 취약

 

서버와 클라이언트간에 보호체널(암호화채널)을 구성하여 정보를 주고받는다.

==> 무결성을 얻는다.

 

Secure Socket Layer(SSL)

보안성이 떨어지는 프로토콜의 보안성을 강화하는 프로토콜

 

Application

Presentation

 --SSL

Session

 

 

HTTP + SSL --> HTTPS

 

SSL의 기능

1. Payload 암호화(무결성 획득)

2. 서버의 제 3자 인증을 지원. --> CA

3. 클라이언트의 제 3자 인증을 지원. --> 브라우저 인증서

 

 

서버는 인증성를 생성해서 CA에 등록. 클라이언트가 서버에 요청시 서버로부터 인증서를 수신받게 됨. 이 인증서를 CA에 확인. 즉,  서버가 정상인지를 CA를 통해 확인.

 

브라우저는 서버에 접속시 브라우저 인증서를 서버에 제공. 

 

http --> https로 동작

 

#openssl 패키지 설치

dnf install openssl

#apache 서버 + ssl 모듈 추가

#ssl 모듈 설치

dnf -y install mod_ssl

# 모듈 적용

systemctl restart httpd

# 다음과 같은 로그가 뜨게 됨

#Server configured, listening on: port 443, port 80

#local인증서 생성. 

#생성기준.

# ns.iqsp.com.key : 개인키 파일

# ns.iqsp.com.csr : 서명 요청 파일

# 개인키 + 서명 요청 --> ns.iqsp.com.crt : 인증서(공개키)

#인증서 기본경로 : /etc/pki/tls/certs

#키 생성

openssl genrsa -out ns.iqsp.com.key 2048

#서명 요청 파일 생성

openssl req -new -key ns.iqsp.com.key -out ns.iqsp.com.csr

# 인증키 생성

openssl x509 -req -days 365 -in ns.iqsp.com.csr -signkey ns.iqsp.com.key -out ns.iqsp.com.crt

#인증서 등록. /etc/httpd/conf.d/ssl.conf에 적용 가능(전체 사이트)

54  SSLEngine on

85 SSLCertificateFile /etc/pki/tls/certs/ns.iqsp.com.crt

93 SSLCertificateKeyFile /etc/pki/tls/certs/ns.iqsp.com.key

# crt, key를 같은 파일에 넣으면 안됨. 임시로 같은 파일에 넣은것임.

# restart

 

 

https://를 통해 접속이 가능한것을 확인

 

Redirect 옵션을 통해 https://로 리다이렉션 시킬 수 있음.

 

로컬인증서가 아닌 CA인증서의 경우 후이즈등에서 구매 가능. 

certbot등이 있음.