kjh00n의 기록저장소
SSL 서버 구축 본문
https = http + ssl
yum -y install httpd
yum -y install openssl
yum -y install mod_ssl
● 개인키 생성 및 인증 요청서(CSR -Certificate Signing Request) 생성
openssl req -nodes -newkey rsa:2048 -keyout kh.key -out kh.csr
req = 인증요청서 X.509 방식으로 생성
-nodes = 개인키를 암호화하지 않겠다.
-new key rsa:2048 = 2048비트 길이의 RSA 공개/개인 키 쌍을 새로 생성
-keyout kh.key = key의 이름을 kh.key로 지정하겠다.
kh.csr = 인증요청서 파일의 이름
● 인증서 만들기
openssl x509 -req -days 365 -in kh.csr -signkey kh.key -out kh.crt
x509 = 인증서 Protocol 방식을 x509로 생성
-req = 인증요청서로 인증서 만들겠다.
-days 365 = 유효기간 설정
-in kh.csr = kh.csr 파일을 입력으로 사용하여 인증서를 생성
-signkey kh.key = kh.key로 서명하겠다 (전자서명)
-out kh.crt = 생성된 인증서를 kh.crt 파일로 출력
● 인증서, 인증요청서, 키 옮기기 ↓
● ssl 자체 설정 파일
vim /etc/httpd/conf.d/ssl.conf
ssl 통신할 때 어디 있는 인증서 파일을 사용할 것이냐 ↑
key 파일 위치 바꿔줄 것 ↑
● WEB 설정 파일
vim /etc/httpd/conf/httpd.conf
사용자가 443 port로 들어와 통신해야 한다.
가상 호스트 설정해줄 것
맨 마지막 줄에 추가해줄 것 ↑
<VirtualHost *:443>
# 443 포트에서 SSL 연결을 처리하는 가상 호스트 설정
# 서버가 어떤 IP 주소로 요청을 받더라도 443번 포트에서 HTTPS(SSL/TLS) 연결을 처리하겠다.
SSLEngine on
# SSL 엔진을 활성화하여 HTTPS 연결을 사용할 수 있도록 함
SSLCertificateFile /etc/pki/tls/certs/kh.crt
# 서버의 SSL 인증서 파일 경로 (kh.crt) 지정
SSLCertificateKeyFile /etc/pki/tls/private/kh.key
# 서버의 SSL 개인 키 파일 경로 (kh.key) 지정
ServerAdmin root@kh.com
# 서버 관리자 이메일 주소 (에러 발생 시 연락을 받을 이메일 주소)
DocumentRoot /var/www/html
# 웹 서버의 루트 디렉토리. 이 디렉토리에 웹 페이지 파일들이 위치
ServerName kh.com
# 이 서버의 도메인 이름 (HTTPS로 접속할 도메인)
ErrorLog logs/ssl_error_log
# SSL 관련 에러 로그를 기록할 파일 경로
CustomLog logs/ssl_access_log common
# SSL 관련 액세스 로그를 기록할 파일 경로
</VirtualHost>
systemctl start httpd
netstat -antup | grep 443
win10에서 https://192.168.50.200해서 접속하기 ↓
Redirection 해보기
● 80 port로 접속하는 Client를 port 443으로 변경해준다.
vim /etc/httpd/conf/httpd.conf
RewriteEngine = Redirection 기능을 사용하겠다.
RewriteCond = HTTPS 접속이 아닌 경우에 Rule이 적용된다.
RewriteRule = 기존의 주소에 HTTPS를 붙여서 다시 요청한다.
<VirtualHost *:80>
# 80 포트에서 HTTP 요청을 처리하는 가상 호스트 설정
<IfModule mod_rewrite.c>
# mod_rewrite 모듈이 활성화된 경우에만 아래 설정을 적용
RewriteEngine On
# URL 재작성 엔진을 활성화하여 리다이렉션을 처리하도록 설정
RewriteCond %{HTTPS} off
# 요청이 HTTPS로 오지 않고 HTTP로 오면 다음 규칙을 적용
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# 모든 요청을 HTTPS로 리다이렉션
</IfModule>
</VirtualHost>
192.168.50.200으로 접속해도 https로 접속이 된다. ↓
'SW개발 보안 구축' 카테고리의 다른 글
WEB 인증(Authentication) (0) | 2024.11.15 |
---|---|
FTPS 구축 (0) | 2024.11.14 |
SSL (0) | 2024.11.14 |
HTTP, Proxy (0) | 2024.11.14 |
HTTP, WAS 구축 (0) | 2024.11.13 |