반응형
EC2 Ubuntu 환경에서 HTTPS 적용 방법 (nginx)
1. aws EC2에서 우분투로 인스턴스 생성했다는 것을 가정한다.
2. ssh 접속
$ ssh -i "[key].pem" ubuntu@[IP 주소]
3. 현재 사용가능한 패키지 및 버전 목록 업데이트
$ sudo apt-get update
4. Git 설치
$ sudo apt-get install git
5. Open JDK 11 설치
$ sudo apt-get install openjdk-11-jdk
6. git clone 및 build
-- apps 폴더 하위에 프로젝트 clone 예정
$ mkdir apps
$ git clone [git URL]
-- 권한 할당
$ sudo chmod 777 ./gradlew
./gradlew build
7. 개발에 필요한 기본 라이브러리 설치
$ sudo apt-get install -y build-essential
$ sudo apt-get install curl
8. nginx 설치
$ sudo apt-get install nginx
9. root로 접속하여 nginx.conf 파일에 접근
$ sudo su
$ vim /etc/nginx/nginx.conf
10. nginx.conf에 아래 코드 추가를 추가한다.
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/site-enabled/*;
# include 아래 내용 추가
server {
server_name [도메인 주소]
listen 80;
location / {
proxy_set_header HOST $host;
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
}
}
도메인 주소에는 서브도메인을 넣어도 상관없다.
설정 파일을 변경했을 경우에는 nginx를 재시작해야한다.
sudo service nginx restart
11. certbot 설치
$ sudo apt-get remove certbot
$ sudo snap install --classic certbot
# nginx 자동 설정
$ sudo certbot --nginx
메일 주소 입력 후, y를 입력하면 성공이다.
12. 80 포트 접속 시 443으로 리다이렉트
# nginx.conf 파일
# 아래 코드 추가
server {
if ($host = [도메인 주소]) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name [도메인 주소]
listen 80;
listen 80;
# 아래 내용 주석 또는 삭제
# return 404; # managed by Certbot
# 추가
return 301 https://$host$request_uri;
위에까지 진행하면 http에서 https로 리다이렉트까지 완료된다.
물론 이 과정이 오기까지에는 인스턴스 인바운드 규칙에서 443포트를 설정했어야한다.
serbot는 무료 인증서이므로 90일 마다 갱신해주어야하기 때문에 crontab 을 이용하여 자동으로 갱신될 수 있도록 지정할 수 있다.
# cron 구성으로 renew 주기적 실행
certbot renew --dry-run
crontab -e
# 2달마다 갱신되도록 아래 내용 추가
0 0 1 * * certbot renew --renew-hook "sudo service nginx restart"
# ctrl+ X로 빠져나오기
# crontab 목록 조회
crontab -l
반응형
'Etc > AWS' 카테고리의 다른 글
[AWS] AWS CLI(Command Line Interface)를 활용한 파일 업로드 (0) | 2023.02.21 |
---|---|
[AWS] EC2 퍼블릭 IPv4 고정 IP 사용하는 방법 (0) | 2022.07.27 |
[AWS] AWS CLI 로 EC2 인스턴스 생성하기 (mac M1) (0) | 2022.07.27 |
[AWS] Spring Boot 프로젝트를 AWS EC2 에 배포하기 (mac) (6) | 2022.06.12 |
최근댓글