캡스톤디자인을 하면서 https 설정과 dns 연결을 진행했습니다. 기존에 aws에서도 진행했었는데 GCP에서는 처음 해봤기에 글로 정리해봤습니다.
AWS에서 설정 👇
https://studycodinging.tistory.com/187
[Draconist] HTTPS 설정하기
✏️본 포스트는 HTTPS 설정하는 과정을 기록한 것입니다. 또한 본 글은 다음 포스트를 참고하였습니다! https://turtle0204.tistory.com/entry/08-https-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0-Draconis
studycodinging.tistory.com
1단계 가비아에서 도메인 구매
gabia.com에 접속하여 원하는 도메인을 검색합니다. .com 기준 연 약 15,000원이며, .site 등 다른 TLD는 가격이 상이할 수 있습니다. 구매 완료 후 My가비아에서 도메인이 등록된 것을 확인합니다.
- gabia.com 접속
- 원하는 도메인 검색 후 구매 (.com 기준 연 ~15,000원)

2단계 GCP Cloud DNS 영역 생성
GCP는 도메인을 직접 구매할 수 없기 때문에 외부에서 구매한 도메인을 GCP Cloud DNS와 연결해야 합니다. Cloud DNS는 DNS 쿼리를 처리하는 GCP의 관리형 DNS 서비스입니다.
GCP 콘솔 → Cloud DNS → 영역 만들기
| 영역 유형 | 공개 |
| DNS 이름 | yourdomain.com |
| 영역 이름 | 아무거나 (예: my-zone) |
나머지 설정은 기본값으로 두고 생성합니다.
💡 영역 이름은 GCP 내부에서만 사용하는 식별자로, DNS 동작에 영향을 주지 않습니다.
3단계- NS 레코드 확인
ns-cloud-a1.googledomains.com.
ns-cloud-a2.googledomains.com.
ns-cloud-a3.googledomains.com.
ns-cloud-a4.googledomains.com.
이 4개의 값을 복사해둡니다. 영역마다 네임서버 값이 다를 수 있으므로 반드시 본인의 GCP 콘솔에서 확인해야 합니다.
4단계 가비아에 네임서버 등록
가비아 로그인 후 My가비아 → 도메인 관리로 이동합니다. 구매한 도메인을 클릭한 후 네임서버 설정에 진입합니다.
기존에 등록된 가비아 기본 네임서버를 모두 삭제하고, 3단계에서 복사한 GCP NS 4개를 입력 후 저장합니다.
- 가비아 로그인 → My가비아 → 도메인 관리
- pick-it.site 클릭 → 네임서버 설정
- 복사한 NS 4개 입력 후 저장


이때 GCP NS 레코드 끝에 붙는 .(점)은 제거하고 입력해야 합니다.
- ns-cloud-a1.googledomains.com. (X)
- ns-cloud-a1.googledomains.com (o)
5단계 A 레코드 추가 (GCP Cloud DNS로 돌아와서)
표준 추가를 클릭합니다.
| DNS 이름 | DNS 이름 |
| 유형 | A |
| TTL | 300 |
| IPv4 | GCP VM 외부 IP |
www도 추가하려면 DNS 이름을 www.도메인 이름 으로 하나 더 추가하면됩니다.

6단계 GCP 방화벽 열기
HTTPS 연결을 위해 80(HTTP)과 443(HTTPS) 포트를 열어줘야 합니다. VM SSH 터미널에서 아래 명령어를 실행합니다.
gcloud compute firewall-rules create allow-http-https \
--allow tcp:80,tcp:443 \
--target-tags http-server,https-server
또는 GCP 콘솔 VPC 네트워크 → 방화벽 → 방화벽 규칙 만들기에서 아래와 같이 설정합니다.
| 트래픽 방향 | 수신 (Ingress) |
| 작업 | 허용 |
| 소스 IP | 0.0.0.0/0 |
| 프로토콜/포트 | TCP 80, 443 |


7단계 HTTPS 인증서 발급 (Let's Encrypt)
Let's Encrypt는 무료로 SSL 인증서를 발급해주는 서비스입니다. Certbot을 사용하면 Nginx 설정까지 자동으로 처리해줍니다.
VM SSH 터미널에서 아래 명령어를 순서대로 실행합니다.
VM에 SSH 접속 후 다음과 같이 명령어를 입력합니다.
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d pick-it.site
실행하면 이메일 입력과 약관 동의를 요청합니다. 이메일은 인증서 만료 알림 수신용으로 사용되며 어떤 이메일이든 상관없습니다. 약관 동의 후 인증서가 자동 발급됩니다.
⚠️ 인증서 발급 전에 DNS 전파가 완료되어야 합니다. 네임서버 변경 후 최대 24~48시간 소요될 수 있다고 합니다 (근데 금방 되는 편인듯??)
Let's Encrypt 인증서는 90일마다 만료되며, Certbot이 자동 갱신을 설정해줍니다. 아래 명령어로 자동 갱신이 정상 동작하는지 테스트할 수 있습니다.
8단계 Nginx 설정
인증서 발급이 완료되면 Certbot이 /etc/nginx/sites-available/default 파일을 자동으로 수정합니다. 그러나 Spring Boot 앱으로 요청을 프록시하려면 location / 블록을 직접 수정해야 합니다.
sudo nano /etc/nginx/sites-available/default
443 서버 블록의 location / 부분을 아래와 같이 수정합니다.
# 수정 전
location / {
try_files $uri $uri/ =404;
}
# 수정 후
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

수정 후 Nginx 설정을 검증하고 재시작합니다.
sudo nginx -t # 설정 문법 검사
sudo systemctl reload nginx # Nginx 재시작
정상적으로 완료되면 https://도메인 으로 접속 시 Spring Boot 앱과 연결됩니다.
'{Lecture} > Capstone design' 카테고리의 다른 글
| [캡스톤디자인] 회원가입 및 레디스 설정하기 (0) | 2026.05.15 |
|---|---|
| [캡스톤디자인] 구글 SMTP 설정하기 2026 (0) | 2026.05.02 |