웹 애플리케이션 프로젝트의 마지막 단계는 배포다.
AWS로 서버를 구성하고 Nginx, uWSGI, unix socket
설정까지 완료 되었다면 배포할 DNS가 있어야 한다.
요즘은 HTTP 프로토콜 보다는 HTTPS 프로토콜이
거의 압도적으로 사용된다. 가장 큰 차이점은 바로
SSL 인증서가 적용된다는 것이다. 웹에서 HTTP
프로토콜을 사용해서 패킷을 주고받는 과정이 모두
암호화로 진행되기 때문에 안전하다고 한다.
만약 HTTP 프로토콜로 웹 애플리케이션을 배포한다면,
웹 브라우저의 주소창 왼쪽에 'Not Secure' 이 뜨면서,
웹 애플리케이션에 접속한 유저들에게 불안감을
증폭시키는 기재가 된다.
1. SSL 인증서 무료로 발급하기
SSL 인증서는 무료로 발급이 가능하다.
와일드카드 기능이 빠지는 단점이 있기는 하지만,
무료 인증서도 사용할만 하다.
위 사이트에 접속하면 상단에 바로 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 적용이 잘
되었는지 확인한다.
'Programming' 카테고리의 다른 글
ubuntu change timezone 우분투 시간대 변경하는 방법 crontab KTS 타임존 시간대 사용하기 / how to change timezone on ubuntu aws server (0) | 2022.01.20 |
---|---|
Nginx uwsgi_pass timeout 현상 해결하기 (0) | 2022.01.19 |
우분투 터미널 환경에서 디스크 용량 확인하는 방법 (0) | 2022.01.18 |
AWS 서버에서 Crontab 작업하는 방법 ubuntu crontab scheduler 사용 (0) | 2022.01.18 |
python 코드 20줄로 AWS S3 버킷에 이미지 업로드 하기 (0) | 2022.01.18 |
AWS에 크롬드라이버 설치 selenium 돌리기 (0) | 2022.01.18 |
댓글