일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 조건연산
- 파이썬
- Comprehension
- spring boot
- sqlalchemy
- 백엔드 인턴십
- 람다함수
- self
- API
- 코딩테스트
- numpy
- todo project
- 컴프리헨션
- 프리온보딩
- PYTHON
- EC2
- 프로그래머스
- cerbot
- Jar배포
- RDS
- mock server
- Django
- 집계함수
- 클래스
- 함수
- yaml
- 행렬곱
- 토이프로젝트
- Postman
- 파이써닉코드
- Today
- Total
build my life
AWS EC2 + Spring Boot + Nginx HTTPS 설정하기(feat.letsencrypt 활용) 본문
client 요청은 HTTPS인데 서버는 HTTP라서 보안상 문제 발생!
서버도 HTTPS 설정을 해보자
1. EC2 인스턴스 생성
https://hapsunny.tistory.com/53
[AWS] Spring boot project AWS EC2 배포 (1)
✅ AWS EC2 인스턴스 생성 1. 인스턴스 이름 생성 2. 필요한 컴퓨팅 소스 설정 - ubuntu 20.04 - 프리티어 사용 가능한지 꼭 확인하기..! (과금막아...!) 3. 키페어 생성 📌 중요 : key 생성 후 안전한 곳에
hapsunny.tistory.com
2. 도메인 발급 및 연결 (https://www.gabia.com/)
도메인은 발급 안받아도 된다고 하긴 하는데... 어떻게 하는지 몰라서....
SSL 인증하려면 도메인이 있어야한다기에.... 가비아에서 구매함!
구매한 도메인과 우분투 서버 주소 연결하기(DNS 관리 > 레코드 수정)
3. EC2 접속해서 jar 파일 실행한 후 도메인으로 접속 되는지 확인
4. Nginx 설치 및 SSL 인증을 통해 HTTPS 적용 (letsencrypt 인증서를 certbot을 통해 받을 것)
4.1 업데이트
$ sudo apt-get update
4.2 letsencrypt 설치
$ sudo apt-get install letsencrypt -y
4.3 letsencrypt의 형태로 ssl/tls 인증서를 무료로 제공하는 certbot 라이브러리 설치
-> nginx도 같이 설치
$ sudo apt install certbot python3-certbot-nginx
4.4 nginx 실행
$ sudo service nginx start
서버 주소 or 도메인으로 접속했을 때 Welcome to nginx 뜨면 성공!
4.5 certbot 통해 인증서 받기
$ sudo certbot --nginx -d 나의도메인주소
1) 메일 주소 입력 2) 약관동의 A치고 엔터 3) 메일공유 N치고 엔터 4) 1(No Redirect) or 2(Redirect) 선택사항 중 2번 선택하고 진행함
=> https 적용되었는지 확인
추가(선택사항) : 아래 명령어를 통해 90일마다 만료되는 인증서 자동 갱신 가능
$ sudo certbot renew --dry-run
5. Nginx로 온 요청을 스프링 부트 서버로 Redirect 시켜보자
5.1 nginx 폴더 이동
$ cd /etc/nginx
5.2 chmod 777 : 수정 삭제 생성 권한 주기
$ sudo chmod 777 ./sites-available
$ sudo chmod 777 ./sites-enabled
5.3 sites-available 폴더로 이동 후 test.conf 파일 생성
$ cd /etc/nginx/sites-available
$ sudo vi ./test.conf
5.4 test.conf 파일에 아래 내용 작성
# 80포트 -> 8080포트로 리다이랙팅
server {
listen 80;
listen [::]:80;
server_name [도메인];
location / {
proxy_pass http://[도메인]:8080;
}
}
# https 등록
server {
ssl on;
listen 443 ssl;
server_name [도메인];
ssl_certificate /etc/letsencrypt/live/나의도메인주소/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/나의도메인주소/privkey.pem;
location / {
proxy_pass http://[도메인]:8080;
}
}
5.5 test.conf 파일을 sites-enabled 폴더에 복사 후 default 파일 삭제
default 파일을 삭제하는 이유는 생성한 test.conf를 설정파일로 사용하기 위함
$ sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled
$ cd /etc/nginx/sites-enabled
$ rm default
6. nginx 다시 시작
$ sudo service nginx restart
=> 성공!
참고)
https://livelyoneweek.tistory.com/13
스프링 서버 HTTPS(Nginx, letsencrypt 활용) 적용
2022 03.27 항해 프로젝트를 진행하면서 (스프링) 프로젝트에 HTTPS 적용 한 것에 대해 기록을 남기고자 한다. (이미지나 기타 설명은 여유되면 추가적으로 넣겠음) 사용한 것 1.EC2 우분투 서
livelyoneweek.tistory.com
https://velog.io/@sloools/Spring-Boot
jar파일로 실행하는 Spring Boot 웹서비스 http 리다이렉팅, https ssl 설정(Let's encrypt)
ssl 인증서 받아서 spring boot에 올리기https://galid1.tistory.com/612certbot 설치 공식 문서https://certbot.eff.org/lets-encrypt/ubuntufocal-othernginx , spri
velog.io
https://dkswnkk.tistory.com/675
가비아 + Linux + Nginx + Cerbot/SSL을 활용한 https 설정
서론 가비아 + Linux + Nginx + Cerbot/SSL을 활용한 https 설정에 대해 문서화하고자 글을 작성하게 되었습니다. 환경 웹 서버: Nginx 인증서 발급: Cerbot/SSL 운영체제: Amazone Linux 도메인 구매: 가비아 목차
dkswnkk.tistory.com
'Project' 카테고리의 다른 글
[TODO-CHECKER] 프로젝트 초기 세팅 (0) | 2023.04.25 |
---|---|
[Toy Project] Spring Boot로 TodoList 구현 - 1차 회고 (0) | 2023.04.19 |
[MRS] 영화 추천 서비스 - 회고 (0) | 2023.04.18 |
[AWS] Spring Boot project AWS EC2 배포 (2) RDS 연동 (0) | 2023.04.07 |
[AWS] Spring boot project AWS EC2 배포 (1) (0) | 2023.04.06 |