kjh00n의 기록저장소

SSL 서버 구축 본문

SW개발 보안 구축

SSL 서버 구축

kjh00n 2024. 11. 14. 15:58

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

Redirection 설정

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