본문 바로가기
Programming

웹 애플리케이션에 SSL 무료발급 하는 방법 및 Nginx 서버에 적용하는 방법 Nginx , AWS 서버 구성

by 하하호호 2022. 1. 18.
반응형

 

 

 

 

웹 애플리케이션 프로젝트의 마지막 단계는 배포다.

AWS로 서버를 구성하고 Nginx, uWSGI, unix socket 

설정까지 완료 되었다면 배포할 DNS가 있어야 한다.

 

요즘은 HTTP 프로토콜 보다는 HTTPS 프로토콜이

거의 압도적으로 사용된다. 가장 큰 차이점은 바로

SSL 인증서가 적용된다는 것이다. 웹에서 HTTP

프로토콜을 사용해서 패킷을 주고받는 과정이 모두

암호화로 진행되기 때문에 안전하다고 한다.

 

만약 HTTP 프로토콜로 웹 애플리케이션을 배포한다면,

웹 브라우저의 주소창 왼쪽에 'Not Secure' 이 뜨면서,

웹 애플리케이션에 접속한 유저들에게 불안감을 

증폭시키는 기재가 된다.

 

1. SSL 인증서 무료로 발급하기

SSL 인증서는 무료로 발급이 가능하다.

와일드카드 기능이 빠지는 단점이 있기는 하지만,

무료 인증서도 사용할만 하다.

 

 

 

Free SSL Certificates and SSL Tools - ZeroSSL

 

zerossl.com

 

위 사이트에 접속하면 상단에 바로 HTTPS 도메인 네임을

입력창이 뜬다. 본인의 도메인 네임을 입력하면 바로 다음

스텝으로 넘어간다.

 

나머지 인증서 발급 과정은 그렇게 힘들지 않지만,

웹 애플리케이션의 도메인 네임의 소유주를 확인하는 

작업은 다소 시간이 소요된다. 

 

90일 인증서를 발급받고, [www.domain.com]형식의  도메인

네임을 입력하면 SSL 인증서가 발급된다.

 

마지막으로 메일을 통해 본인인증까지 완료하면 인증서를

다운받을 수 있다.

 

 

 

2. SSL 인증서 확인

다운로드한 SSL 인증서를 확인해보면 3가지 파일이 포함

되어 있다. 

 

ca_bundle.crt : 체인 / 루트 인증서
certificate.crt : 서버 인증서
private.key : 보안 키

3가지 파일 중에 서버인증서와 체인/루트 인증서를 순서대로

하나의 파일로 합쳐준다.

 

$ cat certificate.crt ca_bundle.crt > nginx_ssl.crt

 

 

 

3. nginx 서버 확인

/etc/nginx/sites-available/configuration 파일을 오픈해서,

SSL 인증서 관련 서버 설정을 추가해준다.

Nginx 서버 구성 conf 파일
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
    listen      443 ssl;
    server_name www.domains.com domains.com;
    charset     utf-8;
 
    # SSL
    ssl                 on;
    ssl_certificate     /home/ubuntu/SSL/nginx_ssl.crt;
    ssl_certificate_key /home/ubuntu/SSL/private.key;
 
    ssl_session_timeout 5m;
 
    ssl_protocols       SSLv2 SSLv3 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;
}
cs

 

Ngnix 1.5 버전 이상은 listen 443 ssl;을 사용한다.

ssl_certificate에는 위에서 서버인증서와 체인/루투 인증서를

합친 인증서를 입력한다.

 

이외 ssl sesstion timeout, ssl_protocol을 설정해주고

저장한다.

 

Nginx를 다시 시작해준다.

 

https://www.domains.com으로 본인의 SSL 적용이 잘 

되었는지 확인한다.

반응형

댓글