Inflearn brand logo image

인프런 커뮤니티 질문&답변

이경용님의 프로필 이미지
이경용

작성한 질문수

비전공자도 이해할 수 있는 Nginx 입문/실전

[실습] Nginx, Certbot을 활용해 HTTPS 적용시키기

챕터 22에대한 질문드립니다.

작성

·

46

·

수정됨

0

안녕하세요! 강의 잘 보고 있습니다.
한 가지 궁금한 점이 있어 질문드립니다.

"HTTPS는 왜 적용해야 할까?" 파트 보다가 문득 궁금해졌는데요,
이전 강의에서 admin 페이지와 일반 페이지를 나눠서 default.conf에 설정하신 부분 설명해주셨는데

여러개의 사이트같은 케이스는..
실무에서는 certbot
적용 강의처럼 하는 절차일까요?
한번에 적용이 되는것일까요?
그러면.. SSL(HTTPS) 적용은 처음 한번만 하는것인지..
아니면 (일정기간마다) 주기적으로 적용을 하시는지 궁금합니다.

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 경용님 ! 강의 잘 따라와 주셔서 정말 감사합니다ㅎㅎ

질문해주신 HTTPS 적용과 여러 사이트 운영 시의

SSL 인증서 관리 방식에 대해서 정리해서 설명드릴게요~

 

"사이트마다 따로 해야 하나요? "

-> 네 맞습니다 ! 사이트(도메인) 개수 만큼 각각 인증서를 발급받아야해요 !

예를 들어 admin.example.com, www.example.com, api.example.com 와 같은

3개의 도메인에는 3개의 인증서가 필요해요 ~

 

"한 번만 하면 되나요? 갱신은 어떻게 이루어지나요?"

-> certbot은 Nginx 설정에 따라 자동으로 각각 처리해줘요 !

각 서버블록(server {})마다 server_name을 다르게 지정해두고,

sudo certbot —-nginx 명령을 실행하면 도메인 별로 HTTPS 자동 설정됩니다 ~

또한 인증서는 기본적으로 90일 마다 갱신을 해야하며,

cerbot은 이를 자동으로 갱신해주는 스케줄러를 가지고 있어요:)

참조하시면 도움이 될것 같아 관련 레퍼런스들 추가로 첨부해 드려요 ~

https://owl-dev.me/blog/42

https://backend-jaamong.tistory.com/160

https://nasn.tistory.com/111

 

추가로 궁금하신 점 있으시면 언제든지 질문 남겨주세요😊

이경용님의 프로필 이미지
이경용
질문자

감사합니다.
그러면 cerbot이아니라 외부에서 만들어진 파일을 적용하면 똑같은 방법으로 해야할까요?

또 spring 파트부분은 아직 안봤지만..
8080(아파치 톰켓버전)포트 8082~8088(Msa버전)포트 9093(스프링부트 버전)의 포트로
(포트폴리오 별)로 나눠서 적용할경우는..
기존의 설명해주신 방법으로 해야할까요?
포트번호가 다르니까..
실제 사용자에게 포트번호를 공유를 안하고싶은데..방법이 있을까 고민하다 질문드리게되었습니다.

자세히알려주셔서 감사합니다.

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

질문주신 내용들 추가로 답변 드려 볼게요 ~

 

"cerbot이아니라 외부에서 만들어진 파일을 적용하면 똑같은 방법으로 해야할까요?"

-> certbot은 자동으로 인증서 파일을 생성하고 Nginx 설정까지 도와주지만,

외부에서 발급받은 SSL 인증서(.crt, .key)가 있다면 수동으로 적용하시면 됩니다 !!

참고로 certbot 없이 수동으로 설정하면 자동 갱신은 직접 처리하셔야 해요 ~

아래 레퍼런스들 참고해보시면 도움이 되실것 같아서 첨부해드려요 :)

https://nasn.tistory.com/111

https://luvris2.tistory.com/916

https://ksbgenius.github.io/ssl/2020/10/06/letsencrypt-certificates-manually-issue.html

 

"포트로(포트폴리오 별)로 나눠서 적용할경우는 기존의 설명해주신 방법으로 해야할까요?"

-> 네 맞습니다 !

리버스 프록시를 설정하시면 도메인과 서브도메인들 별로

각각 다른 서비스로 연결가능합니다 :)

 

추가로 궁금하신점 있으시면 편하게 질문주세요~~

0

안녕하세요, 인프런 AI 인턴입니다. 이경용님.

Nginx와 HTTPS 설정에 관련하여 몇 가지 궁금한 점에 대해 설명드리겠습니다.

HTTPS 적용 이유

HTTPS는 웹사이트와 사용자의 데이터를 암호화하여 네트워크를 통한 중간자 공격(man-in-the-middle) 같은 보안 위협으로부터 보호합니다. 특히, 민감한 데이터를 다루는 웹사이트에서는 필수적입니다.

Nginx에서 여러 사이트에 HTTPS 적용

Nginx를 사용하여 여러 사이트를 운영하는 경우, 각 사이트마다 SSL 인증서를 적용하는 방식이 있습니다. 이 과정은 ‘virtual host’ 구성을 통해 가능하며, default.conf 파일에서 각 도메인에 대해 별도의 서버 블록을 설정합니다.

Certbot을 통한 SSL 인증서 발급

Certbot을 사용하면 Let’s Encrypt을 통해 무료로 SSL 인증서를 발급받을 수 있습니다. Certbot을 활용하여 Nginx에서 HTTPS를 설정할 때, 다음과 같은 과정을 거친다고 보시면 됩니다:
1. 각 도메인명을 포함하는 인증서를 발급받습니다.
2. default.conf나 유사한 설정 파일에 해당 인증서와 개인 키를 경로로 지정합니다.
3. Certbot은 자동으로 웹 서버 설정을 업데이트할 수 있습니다.

주기적인 SSL 갱신

SSL 인증서는 일정 기간마다(예: 90일) 만료되기 때문에, 주기적으로 갱신해야 합니다. Certbot을 사용하면 인증서를 자동으로 갱신하도록 스케줄러(cron job)를 설정할 수 있어 편리합니다.

관련 링크에서 더 자세히 확인하실 수 있습니다:
- Certbot을 사용한 HTTPS 인증서 발급 및 갱신하기

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이경용님의 프로필 이미지
이경용

작성한 질문수

질문하기