가상 호스트 (Virtual Hosts)
가상 호스트 구성
기본 구성 내에 <virtualHost>
블록을 사용해서 구성 사능
편리한 관리를 위해 /etc/httpd/conf/httpd.conf
내에 정의하지 않고 /usr/share/doc/httpd-2.4.6/
디렉토리 내의 템플릿 파일로 구성
가상 호스트 구성 템플릿 파일인 /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf
을 활용하여 설정
해당 파일을 /etc/httpd/conf.d/
디렉토리 내에 이름을 바꾸어서 복사
와일드카드 및 우선 순위
"숫자-이름.conf"
형식으로 생성하는 것이 관리하기 편리함.실습
http 설치
dnf -y install httpd
명령어로 http 설치
가상 호스트 구성
``cp **/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/00-vhost.conf
+** vim etc/httpd/conf.d/00-vhost.conf
명령어로 구성 파일 작성
mkdir /var/www/(지정경로명) 생성 및 index파일 추가
호스트 설정
vim /etc/hosts
명령어로 호스트 추가시스템 구동
systemctl 명령어로 httpd, firewall 활성화
firewall-cmd —add-service=http —permanent
firewall-cmd —reload
명령어로 방화벽 설정
실행결과
HTTPS: HTTP protocol의 암호화된 버전, 클라이언트와 서버 간의 모든 커뮤니케이션을 암호화 하기 위하여 SSL 이나 TLS 을 사용한다.
HTTPS 암호화 방식
클라이언트 → 서버로 랜덤 데이터와 사용 가능한 암호화 방식을 보낸다.
서버 → 클라이언트로 랜덤 데이터, 사용할 암호화 방식과 SSL 인증서를 보낸다.
클라이언트는 서버에게 받은 인증서의 CA가 자신이 들고 있는 CA 리스트에 있는지 확인하고, 있다면 CA의공개키로 복호화한다. 이는 곧 CA 비밀키에 의해 암호화됐다는 것이므로 인증서의 신원을 보증해준다. (공개키 암호화 방식)
클라이언트는 자기가 보낸 랜덤 데이터와 서버로부터 받은 랜덤 데이터를 조합하여 임시 키 (pre master secret key)를 만든다.
만들어진 임시 키를 인증서의 공개키로 암호화하여 서버에게 보낸다.
서버는 자신이 들고 있던 비밀키로 임시 키를 복호화한다.
이로써 클라이언트와 서버는 동일한 임시 키를 공유하게 되는데, 일련의 과정을 거쳐 master secret 값을 만들고 세션 키를 생성한다.
이렇게 만들어진 세션 키로 암호화된 데이터를 주고받는다. (대칭키 암호화 방식)
세션이 종료되면 클라이언트와 서버 모두 세션 키를 폐기한다.
도식
출처: NOBREAK
인증서 생성
openssl genrsa -out keyfile명 key_length
openssl req -new -key 생성_keyfile -out csr파일명
openssl x509 -req -signkey 생성_keyfile -in 생성_csr파일명 -out crt_파일명
SSL/TLS 설정
Apache 웹 서버에서 HTTPS를 사용하기 위해서는 SSL/TLS를 지원하는 모듈이 필요
mod_ssl 패키지 설치: dnf -y install mod_ssl
패키지를 설치하게 되면 SSL/TLS 관련 설정을 저장하고 있는/etc/httpd/conf.d/ssl.conf 파일 생성
ssl.conf 설정
SSLProtocol: SSLProtocol 을 모두 (all) 사용할 수 있지만 SSLv3, TLSv1, TLSv1.1 버전은 사용하지 않음
SSLCipherSuite: SSL 암호화 제품군 설정으로 https://ssl-config.mozilla.org/ 접속해서 Apache의 버전과 OpenSSL의 버전을 입력하면 내 서버에 알맞은 SSLCipherSuite 값을 알 수 있음
SSLCertificateFile: 생성한 CRT 파일의 위치 지정
SSLCertificateKeyFile: 생성한 개인키의 위치 지정
기존 http 주소를 https로 리다이렉팅하도록 설정 /etc/httpd/conf.d/(설정파일)