[가비아] 유료 SSL 호스팅 적용하기

smlee·2022년 8월 9일
2

Back-end

목록 보기
20/26
post-thumbnail

이전까지 프로젝트에서는 무료 SSL 호스팅인 letsencrypt를 사용해서 https 리다이렉션을 적용했었다. 하지만 이번에는 처음으로 가비아를 통해 유료 SSL 인증서를 구매하여 적용하였다.

가비아를 통해 SSL을 호스팅하는 방식은 letsencrypt를 사용하여 적용하는 방법과 다르므로 정리해두려 한다.

1. 인증서, 키 파일 다운로드


가비아 홈페이지의 우측 상단의 My 가비아를 클릭해서 이동한다.

My 가비아 페이지에 들어가서 중앙 부분을 보면 현재 이용 중인 서비스를 볼 수 있다. SSL 보안서버 인증서가 필요하므로 해당 줄을 클릭한다.

그러면 위와 같이 구매한 ssl 보안서버 인증서 목록을 볼 수 있다. 지금은 인증이 완료되어 이용 기간이 적혀 있지만, 인증이 안 되어 있으면 인증서 등록 대기라고 뜬다. 인증서를 등록 하려면 가비아 문서를 참고하면 된다.

(현 프로젝트에서 진행할 때는 웹(HTTP) 인증 방식으로 인증을 하였다. 인증 파일을 받아 서버에 올리기만 하면 되므로 쉽게 진행하였다.)

그러면 다음과 같은 화면이 뜬다.

여기서 인증서 파일 요청을 클릭한다.


인증서 및 개인키 파일을 다운로드 받기 위해 가비아에 가입할 때 사용했던 휴대전화나 이메일로 본인 인증을 완료하면 인증서개인키 파일을 다운로드 할 수 있다.

이렇게 총 4개의 파일을 다운로드 받은 후 인증서를 생성할 디렉터리에 올려놓는다.
(필자는 나중에 .conf파일과 /etc/nginx/sites-available/default 파일에 등록하기 편하도록 /etc/nginx/ssl이라는 디렉터리를 만들어 올려놓았다.)

2. .pem 파일 생성

1번 과정에서 다운로드 받은 4개의 파일(인증서 파일, 개인키 파일, 체인 인증서 파일, 루트 인증서 파일) 중 인증서 파일들만 사용하여 .pem을 만들 예정이다.

cat [도메인 인증서] [체인 인증서] [루트인증서] > [원하는 이름.pem]

ubuntu 20.04 환경을 기준으로 위의 명령어를 통해 .pem 파일을 생성할 수 있다.

이때 중요한 점은 도메인, 체인, 루트 인증서의 순서가 바뀌면 안 된다!

3. NginX에 등록

(1) nginx.conf 파일 수정

vim etc/nginx/nginx.conf 명령어를 통해 nginx.conf 파일을 수정한다.

http 블록을 다음과 같이 설정한다.

http {
	##
    # SSL Settings
    ##
    
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    
    server {
    	server_name www.도메인명 도메인명;
        
        location / {
        	proxy_pass http://127.0.0.1:9000;
        }
        
        listen 443 ssl;
        ssl_certificate /etc/nginx/ssl/[pem파일명].pem;
        ssl_certificate_key /etc/nginx/ssl/[가비아에서 받은 키파일명].key;
        ssl_prefer_ciphers on;
    }
}

http 블록 안에 ssl 프로토콜을 설정해주고, ssl_prefer_server_ciphers on;으로 설정해 둔 뒤 server 블록을 만들어 1, 2번에서 가져온 파일들을 등록한다.

(2) /etc/nginx/sites-available/default 파일 수정

파일 가장 아랫단에 다음과 같은 코드 블럭을 추가한다.

server {
	listen 80;
	server_name [aws eip 주소];
    return 301 https://$host$request_uri;
}

server {
	listen 80;
    server_name [도메인명] www.[도메인명];
    return 301 https://$host$request_uri;
}

(3) nginx 재시작

sudo systemctl restart nginxsudo service nginx reload 명령어를 통해 nginx를 재시작하면 위에서 작성한 파일들이 적용되고 https 리다이렉션 역시 적용된다.

1개의 댓글

comment-user-thumbnail
2022년 9월 13일

가비아 똑같은 인증서 사용중인데 letsecrypt으로 생성할시 fullchain.pem과 chain.pem 두가지더군요. 이 문서에서 만든 pem파일은 아무레도 fullchain.pem파일 역할인듯 싶습니다. chain.pem파일 역할은 어떻게 해야할까요...?

답글 달기