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

유현영·2020년 1월 19일
0

단순히 서버를 구축한다면 많은 해커들의 공격을 받을수 있고 사용자들에게 신뢰할 수 없는 사이트로 인식될수 있다 그렇기에 몇가지 요소들을 인증해주어야한다

Nginx

트레픽이 많은 웹사이트를 위한 확장석을 위해 설계한 비동기 이벤트 기반 구조의 웹서버
쓰레드 기반은 하나의 커넥션당 하나의 쓰레드를 잡아먹지만 이벤트 드라이븐 방식은 여러개의 커넥션을 다 Event Handler를 통해 비동기 방식으로 처리해 먼저 처리되는 것부터 로직이 진행됨

그래서

nginx를 사용하여 프록시서버를 구성할 것이다. Proxy 서버를 통해서 다른 네트워크에 직접적이지 않고 간접적으로 접속 할수 있다.

우분투 서버에 간단하게 Nginx를 적용해보자
(aws의 ec2 로 우분투 서버를 구축하였으며 보안그룹에서 80포트 열어놓음)
1. nginx설치:sudo apt-get update && sudo apt-get install nginx
2. 설치 되었는지 확인: sudo systemctl status nginx
3. nginx시작: sudo service ngnix start
4. 브라우저 주소창에 자신의ip 입력했을때 Welcome to nginx! 나온다면 성공

/etc/nginx/sites-available
프록시 설정 및 어떻게 요청을 처리해야 할지에 대해 설정하는 부분
/etc/nginx/sites-enabled
sites-available 디렉터리에서 연결된 파일들이 존재하는 곳 이 곳에 디렉터리와 연결이 되어 있어야 nginx가 프록시 설정 적용함

이 두파일은 simbolic으로 구성 되어 있어서 sites-available에 기본으로 있는 default를 수정하면 sites-enabled 에 있는 파일도 수정됨 (리눅스 심볼릭 링크는 특정 파일이나 디렉토리에 대하여 참조를 하는 특수한 파일이다.)

	server { 
      	listen 80;
      	server_name ip //해당ec2ip번호혹은도메인
      location / {
			proxy_pass http:127.0.01:express포트번호 
    }
}

SSL

SSL이란?
SSL(Secure Socket Layer) 프로토콜은 처음에 Netscape사에서 웹서버와 브라우저 사이의 보안을 위해 만들었다. SSL은 Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용된다.
즉 , 보안적으로 안전한 네트워크 통신을 위해 통신 패킷을 암호화하거나 웹사이트의 신원 확인 기능이 있다.

인증서 발급
SSL인증서는 공식 인증을 받는 곳에서 발급받을 수 있는데, 가비아 사이트에서 받은 인증서로 적용하는 방법에 대해 알아보겠다.

<진행 과정>
개인키(Private Key) 생성
CSR(Certificate Signing Request) 생성
인증서 발급 신청 제출
인증서 발급 완료 (발급내역서/파일설명서 PDF 참조)
인증서 설치 적용 - 신규,갱신,재발급,도메인추가
서버 정상 적용 완료 테스트
웹페이지에 https:// 링크 적용

가비아 사이트에서 SSL을 구매하고 인증하면 2개의 파일을 제공한다.

RootCA_ChainCA.zip
example.co.kr.zip

순서는 반드시 지켜져야 하며, 순서는 다음과 같습니다.

example_co_kr_cert.pem [도메인 인증서]
Chain_RootCA_Bundle.crt [체인 인증서]
RootCA.crt [루트 인증서]

cat명령어로 쉽게 번들파일을 생성할 수 있다. (그냥 메모장에서 순서대로 복붙하여 만든 파일과 똑같음)

ubuntu@nginx -> cat example_co_kr.cert_pem Chain_RootCA_Bundle.crt RootCA.crt > bundle.pem
profile
오늘보다 더 나은 내일

0개의 댓글