Nginx Web Server SSL 적용
Web Server SSL 적용
서버에 SSL 인증서를 설치하고 HTTPS로 접근하도록 포트포워딩을 하는 과정을 요약하였음
1. SSL 적용을 위해 도메인이 필요
도메인 네임서버 : whois
2. NGINX 및 LET’S ENCRYPT 인증서 설치
운영 체제 : Ubuntu 20.04
(1) certbot 설치
Certbot은 Let’s Encrypt 인증서를 자동으로 발급 및 갱신을 해주는 봇 프로그램
sudo apt-get install certbot python3-certbot-nginx
(2) Nginx SSL 설정
sudo vim /etc/nginx/sites-available
경로의 설정파일(파일명 :default) 을 수정한다.
sudo vim /etc/nginx/sites-available/default
① server_name에 만들어둔 도메인을 넣어준다.
server_name test-web.companyname.com
② API node.js 서버는 3000포트이므로 포트포워딩을 설정한다.
location / { proxy_pass http://127.0.0.1:3000; }
(파일명 ‘default’ 파일의 설정 소스코드)
server {
root /var/www/html;
#도메인 추가
server_name test-web.companyname.com;
charset utf-8;
location / {
# api node.js 서버포트가 3000이므로 포트포워딩 설정
proxy_pass http://127.0.0.1:3000;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/test-web.companyname.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/test-web.companyname.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = test-web.companyname.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
listen [::]:80 default_server;
server_name test-web.companyname.com;
return 404; # managed by Certbot
}
③ 설정을 저장하고 명령어로 재시작
sudo nginx –t
sudo service nginx reload
3.SSL 인증서 획득
sudo certbot –nginx -d test-web.companyname.com
(설명)
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
모든 HTTP 요청을 HTTPS로 자동 변경하도록 2번 선택한다. 이렇게 하면 80포트에 대한 요청이 SSL 적용된 443포트로 redirect 된다.
4.결과 : 적용 확인
추가적으로 할 설정들
(1) AWS 인바운드 설정
(2) 방화벽 설정
참고 : https://jp-hosting.jp/nginx-lets-encrypt%EB%A5%BC-%ED%86%B5%ED%95%B4-nginx%EC%97%90%EC%84%9C-%EB%AC%B4%EB%A3%8C%EB%A1%9C-https-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/
(추가)
프로세스가 중단되지 않는 경우 강제로 프로세스 죽이는 방법
실행 중인 프로세스 검색하면 PID 번호가 나오는데, 해당 PID 번호로 강제 종료.
ps –ef grep nginx
sudo kill -9 71428
nginx 상태확인
sudo systemctl status nginx
nginx 시작
sudo systemctl start nginx
댓글남기기