[HTTPS] Nginx 웹 서버에 SSL 인증서 적용하기

cowmin·2025년 6월 20일

1. 개요

1.1 실습 목적 및 시스템 개요

웹 서비스를 운영하는 과정에서 SSL 인증서의 유효 기간이 만료되면, 브라우저 경고 및 HTTPS 연결 실패 등의 문제가 발생할 수 있다.
본 실습은 도메인에 연결된 웹 서버에서 SSL 인증서를 정상적으로 갱신하고, 갱신된 인증서가 올바르게 적용되었는지 확인하는 과정을 다루었다.


2. 도메인 주소 생성

2.1 내도메인.한국에서 도메인 생성

  • 생성한 도메인 주소 : cowmin.kro.kr

도메인 생성

2.2 도메인에 A 레코드 설정

  • A 레코드 설정: 도메인 이름을 특정 IP 주소에 매핑하는 설정
  • 설정 위치: 고급 설정(DNS) → IP연결(A)
  • 설정값: www, 192.168.32.170

A 레코드 설정


3. SSL 인증서 발급 및 DNS 인증 등록

3.1 ZeroSSL - New Certificate 생성

  • 도메인: www.cowmin.kro.kr
  • 기간: 90일
  • 기타 항목: 기본값

3.2 DNS(CNAME) 인증 정보 확인

  • Name: _40976b47557609cafa065c2bbdfb43f8.www
  • Point To: 611ea4a4...ae5.comodoca.com

3.3 내도메인.한국에서 CNAME 등록

  • 위치: 고급 설정(DNS) → 별칭(CNAME)
  • 입력 예:
    • Name: _40976b47557609cafa065c2bbdfb43f8.www
    • Value: 611ea4a4...ae5.comodoca.com

CNAME 등록

3.4 인증서 다운로드

인증서 다운로드


4. Nginx 서버에 SSL 인증서 적용

4.1 인증서 파일 합치기

인증서 파일을 합치는 이유는 웹 서버가 브라우저에 신뢰할 수 있는 인증서 체인을 완성된 형태로 제공해야 하기 때문이다.
특히 중간 인증서가 누락되면, 브라우저가 SSL 연결을 신뢰하지 않아 경고가 발생할 수 있다.

4.2 Nginx 설정 변경

/etc/nginx/sites-enabled/default
# 포트 80 (HTTP) 으로 들어온 요청 처리
server {
        listen 80;
        
        # 대상 도메인
        server_name www.cowmin.kro.kr;

		# 모든 요청을 HTTPS로 301 리디렉션
        location / {
        return 301 https://$host$request_uri;
        }
}

# 포트 443 (HTTPS) 으로 들어온 요청 처리
server {
        listen 443 ssl;
        
        # 대상 도메인
        server_name www.cowmin.kro.kr;

		# 웹 루트
        root /var/www/html;
        
        # 기본 인덱스 파일
        index index.html index.htm;
		
        # 인증서 파일 경로
        ssl_certificate /etc/nginx/ssl/fullchain.pem;
        ssl_certificate_key /etc/nginx/ssl/private.key;

		# 우선순위: 정적 파일($uri), 디렉토리 ($uri/), 없으면 index.php로 전달
        location / {
        try_files $uri $uri/ /index.php?$args;
        }
}

5. SSL 적용 화면 및 접속 링크

SSL 적용 화면

[ www.cowmin.kro.kr 접속하기 ]
도메인 유효기간: 2025-09-20까지

0개의 댓글