From fa657f3e85ba110d425813873fd4a5b7192b39ad Mon Sep 17 00:00:00 2001 From: happybell80 Date: Thu, 12 Mar 2026 14:07:05 +0900 Subject: [PATCH] Add goosefarminvesting domain recovery docs --- journey/README.md | 4 + ...ธ_์ธ์ฆ์„œ_๋ฐ_nginx_์ •ํ•ฉํ™”_๊ณ„ํš.md | 112 ++++++++++++++++++ ..._DNS_https_nginx_์ง„์ž…์ƒํƒœ_๋ฆฌ์„œ์น˜.md | 93 +++++++++++++++ ...„ํ™˜ํ›„_https_์ธ์ฆ์„œ๋ถˆ์ผ์น˜_์ด์Šˆ.md | 63 ++++++++++ ...ธ์ฆ์„œ_์ ์šฉ_๋ฐ_์‹ค๋„๋ฉ”์ธ_๊ฒ€์ฆ.md | 36 ++++++ 5 files changed, 308 insertions(+) create mode 100644 journey/plans/260311_goosefarminvesting_๋„๋ฉ”์ธ_์ธ์ฆ์„œ_๋ฐ_nginx_์ •ํ•ฉํ™”_๊ณ„ํš.md create mode 100644 journey/research/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS_https_nginx_์ง„์ž…์ƒํƒœ_๋ฆฌ์„œ์น˜.md create mode 100644 journey/troubleshooting/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS์ „ํ™˜ํ›„_https_์ธ์ฆ์„œ๋ถˆ์ผ์น˜_์ด์Šˆ.md create mode 100644 journey/worklog/260311_goosefarminvesting_๋„๋ฉ”์ธ_vhost_์ธ์ฆ์„œ_์ ์šฉ_๋ฐ_์‹ค๋„๋ฉ”์ธ_๊ฒ€์ฆ.md diff --git a/journey/README.md b/journey/README.md index 2f578d4..69fbc18 100644 --- a/journey/README.md +++ b/journey/README.md @@ -46,6 +46,7 @@ - [23 gateway MONITOR_URL ๊ตฌ์ฃผ์†Œ ์ž”์กด์œผ๋กœ 24 monitor ํ”„๋ก์‹œ ์‹คํŒจ ๋ณต๊ตฌ](./troubleshooting/260310_23gateway_monitor_url_๊ตฌ์ฃผ์†Œ์ž”์กด_24monitorํ”„๋ก์‹œ์‹คํŒจ_๋ณต๊ตฌ.md) - [24 ์ž๋™๋ฐฐํฌ 0์ดˆ ์ข…๋ฃŒ์™€ runtime SSOT ๋ถˆ์ผ์น˜ ์ด์Šˆ](./troubleshooting/260311_24์ž๋™๋ฐฐํฌ_0์ดˆ์ข…๋ฃŒ_runtime_ssot๋ถˆ์ผ์น˜_์ด์Šˆ.md) - [51123 ํฌํŠธ๊ฒฝ๊ณ„ ๋ณต์žก์„ฑ ๋ฐ ์ง„์ž…๊ตฌ์กฐ๋ถˆ์ผ์น˜ ์ด์Šˆ](./troubleshooting/260311_51123_ํฌํŠธ๊ฒฝ๊ณ„_๋ณต์žก์„ฑ_๋ฐ_์ง„์ž…๊ตฌ์กฐ๋ถˆ์ผ์น˜_์ด์Šˆ.md) +- [goosefarminvesting ๋„๋ฉ”์ธ DNS์ „ํ™˜ํ›„ HTTPS ์ธ์ฆ์„œ๋ถˆ์ผ์น˜ ์ด์Šˆ](./troubleshooting/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS์ „ํ™˜ํ›„_https_์ธ์ฆ์„œ๋ถˆ์ผ์น˜_์ด์Šˆ.md) - [Gitea git credential helper ํ‘œ์ค€ํ™”](./troubleshooting/260309_gitea_git_credential_helper_ํ‘œ์ค€ํ™”.md) - [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ธํ”„๋ผ ๊ตฌ์กฐ์ •๋ฆฌ ์ด์Šˆ](./troubleshooting/260307_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_์ธํ”„๋ผ_๊ตฌ์กฐ์ •๋ฆฌ_์ด์Šˆ.md) - [์™ธ๋ถ€ NAS -> ๋‚ด๋ถ€ NAS ์ปดํผ๋‹ˆ์—‘์Šค ํŒŒ์ผ ๋™๊ธฐํ™” ์•„์ด๋””์–ด](./ideas/260307_external_nas_companyx_sync_์•„์ด๋””์–ด.md) @@ -59,12 +60,15 @@ - [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค SSOT ๊ตฌ์กฐ์ „ํ™˜ ๋ฆฌ์„œ์น˜](./research/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๋ฆฌ์„œ์น˜.md) - [51123 ํฌํŠธ ์ง„์ž…์  ํ”„๋กœ์ ํŠธ ๊ฒฝ๊ณ„ ๋ฆฌ์„œ์น˜](./research/260310_51123_ํฌํŠธ_์ง„์ž…์ _ํ”„๋กœ์ ํŠธ๊ฒฝ๊ณ„_๋ฆฌ์„œ์น˜.md) - [24 ์ž๋™๋ฐฐํฌ 0์ดˆ ์ข…๋ฃŒ์™€ runtime SSOT ๋ถˆ์ผ์น˜ ๋ฆฌ์„œ์น˜](./research/260311_24์ž๋™๋ฐฐํฌ_0์ดˆ์ข…๋ฃŒ_runtime_ssot๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md) +- [goosefarminvesting ๋„๋ฉ”์ธ DNS HTTPS nginx ์ง„์ž…์ƒํƒœ ๋ฆฌ์„œ์น˜](./research/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS_https_nginx_์ง„์ž…์ƒํƒœ_๋ฆฌ์„œ์น˜.md) - [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ ์‹คํ–‰ ๊ฒฝ๋กœ ์ œ๊ฑฐ ๊ณ„ํš](./plans/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md) - [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๊ณ„ํš](./plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md) - [24 ์ž๋™๋ฐฐํฌ 0์ดˆ ์ข…๋ฃŒ runtime SSOT ๋ณต๊ตฌ ๊ณ„ํš](./plans/260311_24์ž๋™๋ฐฐํฌ_0์ดˆ์ข…๋ฃŒ_runtime_ssot๋ณต๊ตฌ_๊ณ„ํš.md) - [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค SSOT ๊ตฌ์กฐ์ „ํ™˜ ๊ณ„ํš](./plans/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๊ณ„ํš.md) - [์™ธ๋ถ€ NAS -> ๋‚ด๋ถ€ NAS ์ปดํผ๋‹ˆ์—‘์Šค ๋™๊ธฐํ™” ์šด์˜๊ณ„ํš](./plans/260311_external_nas_companyx_sync_์šด์˜๊ณ„ํš.md) - [rb8001 24 ์ž๋™๋ฐฐํฌ SSOT ๋ณต๊ตฌ ๋ฐ SSH ์ธ์ฆ ์ˆ˜์ • ์™„๋ฃŒ](./worklog/260311_rb8001_24์ž๋™๋ฐฐํฌ_ssot๋ณต๊ตฌ_๋ฐ_ssh์ธ์ฆ์ˆ˜์ •_์™„๋ฃŒ.md) +- [goosefarminvesting ๋„๋ฉ”์ธ ์ธ์ฆ์„œ ๋ฐ nginx ์ •ํ•ฉํ™” ๊ณ„ํš](./plans/260311_goosefarminvesting_๋„๋ฉ”์ธ_์ธ์ฆ์„œ_๋ฐ_nginx_์ •ํ•ฉํ™”_๊ณ„ํš.md) +- [goosefarminvesting ๋„๋ฉ”์ธ vhost ์ธ์ฆ์„œ ์ ์šฉ ๋ฐ ์‹ค๋„๋ฉ”์ธ ๊ฒ€์ฆ](./worklog/260311_goosefarminvesting_๋„๋ฉ”์ธ_vhost_์ธ์ฆ์„œ_์ ์šฉ_๋ฐ_์‹ค๋„๋ฉ”์ธ_๊ฒ€์ฆ.md) - [24์„œ๋ฒ„ ONNX ๋ชจ๋ธ NAS ๋ฐฑ์—… ์ •๋ฆฌ](./worklog/260309_24์„œ๋ฒ„_onnx๋ชจ๋ธ_nas๋ฐฑ์—…_์ •๋ฆฌ.md) - [23์ œ์–ด๋ฉด gateway workspace-config ๋‹จ์ผํ™”](./worklog/260309_23์ œ์–ด๋ฉด_gateway_workspace_config_๋‹จ์ผํ™”.md) - [51123 ๊ตฌIP active runtime ์ œ๊ฑฐ 1์ฐจ](./worklog/260309_51123_๊ตฌIP_active_runtime_์ œ๊ฑฐ_1์ฐจ.md) diff --git a/journey/plans/260311_goosefarminvesting_๋„๋ฉ”์ธ_์ธ์ฆ์„œ_๋ฐ_nginx_์ •ํ•ฉํ™”_๊ณ„ํš.md b/journey/plans/260311_goosefarminvesting_๋„๋ฉ”์ธ_์ธ์ฆ์„œ_๋ฐ_nginx_์ •ํ•ฉํ™”_๊ณ„ํš.md new file mode 100644 index 0000000..f8d2537 --- /dev/null +++ b/journey/plans/260311_goosefarminvesting_๋„๋ฉ”์ธ_์ธ์ฆ์„œ_๋ฐ_nginx_์ •ํ•ฉํ™”_๊ณ„ํš.md @@ -0,0 +1,112 @@ +--- +tags: [infra, goosefarminvesting, nginx, ssl, dns, plans] +--- + +# 260311 goosefarminvesting ๋„๋ฉ”์ธ ์ธ์ฆ์„œ ๋ฐ nginx ์ •ํ•ฉํ™” ๊ณ„ํš + +**์ƒํƒœ**: ์™„๋ฃŒ (2026-03-11) + +## ์ƒ์œ„ ์›์น™ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) +- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) + +## ๊ด€๋ จ ๋ฌธ์„œ +- [Infra Journey](../README.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ DNS์ „ํ™˜ํ›„ HTTPS ์ธ์ฆ์„œ๋ถˆ์ผ์น˜ ์ด์Šˆ](../troubleshooting/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS์ „ํ™˜ํ›„_https_์ธ์ฆ์„œ๋ถˆ์ผ์น˜_์ด์Šˆ.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ DNS HTTPS nginx ์ง„์ž…์ƒํƒœ ๋ฆฌ์„œ์น˜](../research/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS_https_nginx_์ง„์ž…์ƒํƒœ_๋ฆฌ์„œ์น˜.md) +- [260310 51123 ํฌํŠธ ์ง„์ž…์  ํ”„๋กœ์ ํŠธ ๊ฒฝ๊ณ„ ๋ฆฌ์„œ์น˜](../research/260310_51123_ํฌํŠธ_์ง„์ž…์ _ํ”„๋กœ์ ํŠธ๊ฒฝ๊ณ„_๋ฆฌ์„œ์น˜.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ vhost ์ธ์ฆ์„œ ์ ์šฉ ๋ฐ ์‹ค๋„๋ฉ”์ธ ๊ฒ€์ฆ](../worklog/260311_goosefarminvesting_๋„๋ฉ”์ธ_vhost_์ธ์ฆ์„œ_์ ์šฉ_๋ฐ_์‹ค๋„๋ฉ”์ธ_๊ฒ€์ฆ.md) + +## 2026-03-11 ์™„๋ฃŒ ๋ฐ˜์˜ +- `goosefarminvesting.com` ์ „์šฉ 80/443 vhost๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. +- ๋ฃจํŠธ ๊ฒฝ๋กœ๋Š” basename ์œ ์ง€ ์›์น™์— ๋”ฐ๋ผ `https://goosefarminvesting.com/goosefarm/` ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋กœ ๊ณ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. +- Let's Encrypt ์ธ์ฆ์„œ๋ฅผ `goosefarminvesting.com` ๋‹จ์ผ SAN์œผ๋กœ ๋ฐœ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. +- `/etc/nginx/sites-available/default`์™€ `/etc/nginx/sites-enabled/default` ๋ถˆ์ผ์น˜๋ฅผ ํ™•์ธํ•˜๊ณ  ๋‘˜ ๋‹ค ๊ฐ™์€ SSOT๋กœ ๋™๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. +- ์™ธ๋ถ€ ๊ฒ€์ฆ ๊ธฐ์ค€ HTTP/HTTPS ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ, `/goosefarm/` 200, ์ธ์ฆ์„œ SAN ์ผ์น˜๋ฅผ ๋ชจ๋‘ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. +- ํ›„์† ์ ์šฉ์œผ๋กœ ์ธ์ฆ์„œ๋ฅผ `goosefarminvesting.com + www.goosefarminvesting.com` SAN์œผ๋กœ ํ™•์žฅํ–ˆ๊ณ , nginx `server_name`์—๋„ `www`๋ฅผ ํฌํ•จํ•ด `www -> apex 301` ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ๊ณ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. +- ์™ธ๋ถ€ ๊ฒ€์ฆ ๊ธฐ์ค€ `http://www.goosefarminvesting.com -> 301`, `https://www.goosefarminvesting.com/goosefarm/ -> 301`, SAN `DNS:www.goosefarminvesting.com`์ด ํ™•์ธ๋์Šต๋‹ˆ๋‹ค. + +## ๋ชฉํ‘œ +- `goosefarminvesting.com`์ด 51123์—์„œ HTTP/HTTPS ๋ชจ๋‘ ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‘๋‹ตํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. +- ๊ธฐ๋ณธ ์„œ๋ฒ„ ์‘๋‹ต์— ๊ธฐ๋Œ€์ง€ ์•Š๊ณ , ์ „์šฉ `server_name`๊ณผ ์ „์šฉ ์ธ์ฆ์„œ๋กœ ๋„๋ฉ”์ธ ์ง„์ž…๋ฉด์„ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค. +- ์ ์šฉ ํ›„ ์‹ค์ œ ์™ธ๋ถ€ ๋„๋ฉ”์ธ ๊ธฐ์ค€์œผ๋กœ HTTP, HTTPS, ์ธ์ฆ์„œ SAN, ์ฝ˜ํ…์ธ  ๊ฒฝ๋กœ๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. + +## ๋ณ€๊ฒฝ ๋ฒ”์œ„ +### 1. nginx vhost ์ •ํ•ฉํ™” +- `goosefarminvesting.com` ์ „์šฉ 80/443 ์„œ๋ฒ„ ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. +- ํ•„์š” ์‹œ `www.goosefarminvesting.com`๋„ ๊ฐ™์€ ์ž‘์—… ๋‹จ์œ„์—์„œ ํ•จ๊ป˜ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. +- ๋ฃจํŠธ ๋„๋ฉ”์ธ์—์„œ ์–ด๋–ค ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ• ์ง€ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค. + - ์˜ต์…˜ A: ๊ธฐ์กด `/var/www/html/goosefarm` ์ •์  ์ž์‚ฐ์„ ๋ฃจํŠธ ๋„๋ฉ”์ธ์œผ๋กœ ์ง์ ‘ ๋งคํ•‘ + - ์˜ต์…˜ B: ๋ฃจํŠธ๋Š” ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๊ณ  ๊ธฐ์กด `/goosefarm` ๊ฒฝ๋กœ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ +- `/api` ๋˜๋Š” ๊ธฐ์กด goosefarm API๋Š” ํ˜„์žฌ `localhost:8200` ๊ฒฝ๋กœ์™€ ์ถฉ๋Œ ์—†์ด ์ด์–ด์ง€๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. + +### 2. ์ธ์ฆ์„œ ์ •ํ•ฉํ™” +- `goosefarminvesting.com`์šฉ Let's Encrypt ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. +- `www`๋ฅผ ์šด์˜ํ•œ๋‹ค๋ฉด SAN์— ํ•จ๊ป˜ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. +- ๊ธฐ์กด `ro-being.com` ์ธ์ฆ์„œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜๋Š” ์ธ์ฆ์„œ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. + +### 3. ๋ฐ˜์˜๊ณผ ๊ฒ€์ฆ +- `sudo nginx -t`๋กœ ๋ฌธ๋ฒ• ๊ฒ€์ฆ +- `sudo systemctl reload nginx`๋กœ ๋ฐ˜์˜ +- ์™ธ๋ถ€ ๊ธฐ์ค€์œผ๋กœ `curl -I http://goosefarminvesting.com`, `curl -I https://goosefarminvesting.com` ์žฌํ™•์ธ +- `openssl s_client`๋กœ SAN๊ณผ ๋งŒ๋ฃŒ์ผ ๊ฒ€์ฆ +- ์‹ค์ œ ๋ธŒ๋ผ์šฐ์ €์—์„œ `https://goosefarminvesting.com` ์ ‘์† ์‹œ ๊ฒฝ๊ณ  ์—†์ด ์˜๋„ํ•œ ํ™”๋ฉด์ด ๋œจ๋Š”์ง€ ํ™•์ธ + +## ์‹คํ–‰ ์›์น™ +- DNS๋ฅผ ๋‹ค์‹œ ๊ฑด๋“œ๋ฆฌ๊ธฐ ์ „์— 51123 nginx ์ง„์ž…๋ฉด๊ณผ ์ธ์ฆ์„œ๋ฅผ ๋จผ์ € ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. +- HTTP 200๋งŒ ๋ณด๊ณ  ์™„๋ฃŒ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- `goosefarminvesting.com`์„ `ro-being.com` ๊ธฐ๋ณธ ์„œ๋ฒ„์— ์–น์–ด ์ž„์‹œ๋กœ ์ˆจ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- ์ธ์ฆ์„œ ๋ฌธ์ œ๋ฅผ `-k` ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์˜ˆ์™ธ ์Šน์ธ์œผ๋กœ ์šฐํšŒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. + +## ๋‹จ๊ณ„๋ณ„ ๊ณ„ํš +### 1. ์‹ค์ œ ์ ์šฉ nginx ํŒŒ์ผ ํ™•์ธ +- `/etc/nginx/sites-enabled/*`์—์„œ ํ˜„์žฌ ์ ์šฉ ์ค‘์ธ `server_name`, `listen 443`, `ssl_certificate` ๊ตฌ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. +- `goosefarminvesting.com` ์ „์šฉ ๋ธ”๋ก์ด ์—†๋‹ค๋Š” ์‚ฌ์‹ค์„ ์‹ค์ œ ์šด์˜ ํŒŒ์ผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ๋‹ซ์Šต๋‹ˆ๋‹ค. + +### 2. ๋„๋ฉ”์ธ ์ง„์ž… ์ •์ฑ… ๊ฒฐ์ • +- ๋ฃจํŠธ ๋„๋ฉ”์ธ์—์„œ ๊ธฐ์กด goosefarm ํ”„๋ŸฐํŠธ ์ž์‚ฐ์„ ์ง์ ‘ ๋ณด์—ฌ์ค„์ง€, ๊ฒฝ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋กœ ๋‘˜์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. +- ๊ฒฐ์ •์ด ๋‚˜๋ฉด `/`, `/api`, ์ •์  ์ž์‚ฐ, ์บ์‹œ ์ •์ฑ…์„ ๊ฐ™์€ vhost ์•ˆ์—์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. + +### 3. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ์—ฐ๊ฒฐ +- Certbot ๋˜๋Š” ํ˜„์žฌ ์šด์˜ ํ‘œ์ค€ ๋ฐฉ์‹์œผ๋กœ `goosefarminvesting.com` ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. +- 443 ๋ธ”๋ก์— ์ƒˆ ์ธ์ฆ์„œ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. +- 80 ๋ธ”๋ก์€ ACME ์ฑŒ๋ฆฐ์ง€์™€ HTTPS ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ •์ฑ…์„ ํ•จ๊ป˜ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. + +### 4. ๋ฐ˜์˜ ํ›„ ์™ธ๋ถ€ ๊ฒ€์ฆ +- `curl -I http://goosefarminvesting.com`๊ฐ€ ์˜๋„ํ•œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋˜๋Š” 200์„ ๋ฐ˜ํ™˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. +- `curl -I https://goosefarminvesting.com`๊ฐ€ ์ธ์ฆ์„œ ์˜ค๋ฅ˜ ์—†์ด ์ •์ƒ ์‘๋‹ตํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. +- `openssl s_client` ๊ฒฐ๊ณผ SAN์— `goosefarminvesting.com`์ด ํฌํ•จ๋๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. +- ์‹ค์ œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฃจํŠธ ํ™”๋ฉด, ํ•ต์‹ฌ API, ์ •์  ํŒŒ์ผ ๋กœ๋”ฉ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. + +## ๊ฒ€์ฆ ๊ณ„ํš +### 1. ์„ค์ • ๊ฒ€์ฆ +- `server_name goosefarminvesting.com` ์กด์žฌ ์—ฌ๋ถ€ +- 443 ๋ธ”๋ก์˜ `ssl_certificate`์™€ `ssl_certificate_key`๊ฐ€ ๋„๋ฉ”์ธ ์ „์šฉ ๊ฒฝ๋กœ์ธ์ง€ ์—ฌ๋ถ€ +- `nginx -t` ์„ฑ๊ณต ์—ฌ๋ถ€ + +### 2. ์™ธ๋ถ€ ์‘๋‹ต ๊ฒ€์ฆ +- HTTP ์ƒํƒœ์ฝ”๋“œ +- HTTPS ์ƒํƒœ์ฝ”๋“œ +- ์ธ์ฆ์„œ CN/SAN +- ์‹ค์ œ ๋ณธ๋ฌธ์ด ์˜๋„ํ•œ goosefarm ํŽ˜์ด์ง€์ธ์ง€ ์—ฌ๋ถ€ + +### 3. ์šด์˜ ๊ฒ€์ฆ +- nginx reload ์งํ›„ ์—๋Ÿฌ ๋กœ๊ทธ ์ด์ƒ ์œ ๋ฌด +- ์ธ์ฆ์„œ ์ž๋™๊ฐฑ์‹  ๋Œ€์ƒ ํฌํ•จ ์—ฌ๋ถ€ +- ํ•„์š” ์‹œ `www` ์„œ๋ธŒ๋„๋ฉ”์ธ๊นŒ์ง€ ๊ฐ™์€ ์ •์ฑ…์œผ๋กœ ๋‹ซํ˜”๋Š”์ง€ ์—ฌ๋ถ€ + +## ์™„๋ฃŒ ํŒ๋‹จ ๊ธฐ์ค€ +- ๊ถŒํ•œ DNS๋Š” `hosting.kr`, A ๋ ˆ์ฝ”๋“œ๋Š” `106.254.1.37`๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. +- `https://goosefarminvesting.com`์ด ์ด๋ฆ„ ์ผ์น˜ ์ธ์ฆ์„œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. +- 51123 nginx์— `goosefarminvesting.com` ์ „์šฉ ์ง„์ž…๋ฉด์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. +- ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €์™€ CLI์—์„œ ์ธ์ฆ์„œ ๊ฒฝ๊ณ  ์—†์ด ์˜๋„ํ•œ ์ฝ˜ํ…์ธ ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. + +## ๋‚จ์€ ๊ฒฐ์ • ํ•ญ๋ชฉ +- ์—†์Šต๋‹ˆ๋‹ค. + +## ์ƒ์œ„ ์›์น™/๊ทผ๊ฑฐ ๋ฌธ์„œ ์—ฐ๊ฒฐ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) diff --git a/journey/research/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS_https_nginx_์ง„์ž…์ƒํƒœ_๋ฆฌ์„œ์น˜.md b/journey/research/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS_https_nginx_์ง„์ž…์ƒํƒœ_๋ฆฌ์„œ์น˜.md new file mode 100644 index 0000000..3ea6350 --- /dev/null +++ b/journey/research/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS_https_nginx_์ง„์ž…์ƒํƒœ_๋ฆฌ์„œ์น˜.md @@ -0,0 +1,93 @@ +--- +tags: [infra, goosefarminvesting, dns, https, nginx, research] +--- + +# 260311 goosefarminvesting ๋„๋ฉ”์ธ DNS HTTPS nginx ์ง„์ž…์ƒํƒœ ๋ฆฌ์„œ์น˜ + +## ์ƒ์œ„ ์›์น™ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) +- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) + +## ๊ด€๋ จ ๋ฌธ์„œ +- [Infra Journey](../README.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ DNS์ „ํ™˜ํ›„ HTTPS ์ธ์ฆ์„œ๋ถˆ์ผ์น˜ ์ด์Šˆ](../troubleshooting/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS์ „ํ™˜ํ›„_https_์ธ์ฆ์„œ๋ถˆ์ผ์น˜_์ด์Šˆ.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ ์ธ์ฆ์„œ ๋ฐ nginx ์ •ํ•ฉํ™” ๊ณ„ํš](../plans/260311_goosefarminvesting_๋„๋ฉ”์ธ_์ธ์ฆ์„œ_๋ฐ_nginx_์ •ํ•ฉํ™”_๊ณ„ํš.md) +- [260310 51123 ํฌํŠธ ์ง„์ž…์  ํ”„๋กœ์ ํŠธ ๊ฒฝ๊ณ„ ๋ฆฌ์„œ์น˜](./260310_51123_ํฌํŠธ_์ง„์ž…์ _ํ”„๋กœ์ ํŠธ๊ฒฝ๊ณ„_๋ฆฌ์„œ์น˜.md) + +## Facts + +### 1. ํ˜„์žฌ ์ธํ„ฐ๋„ท์ด ๋ณด๋Š” ๊ถŒํ•œ DNS๋Š” FastComet์ด ์•„๋‹ˆ๋ผ hosting.kr์ด๋‹ค +- 2026-03-11 ์™ธ๋ถ€ ์กฐํšŒ ๊ธฐ์ค€ `dig +short NS goosefarminvesting.com` ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. + - `ns1.hostingkr.net.` + - `ns2.hostingkr.net.` +- WHOIS์—์„œ๋„ `Name Server: NS1.HOSTINGKR.NET`, `Name Server: NS2.HOSTINGKR.NET`๋กœ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค. +- ๋”ฐ๋ผ์„œ ์ด ์‹œ์ ์˜ ์‹ค์ œ DNS SSOT๋Š” FastComet Zone Editor๊ฐ€ ์•„๋‹ˆ๋ผ `hosting.kr` ๋„ค์ž„์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. + +### 2. A ๋ ˆ์ฝ”๋“œ๋Š” ์ด๋ฏธ `106.254.1.37`๋กœ ์ „ํ™˜๋๋‹ค +- 2026-03-11 ์™ธ๋ถ€ ์กฐํšŒ ๊ธฐ์ค€ `dig +short A goosefarminvesting.com` ๊ฒฐ๊ณผ๋Š” `106.254.1.37`์ž…๋‹ˆ๋‹ค. +- ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž ์„ค๋ช… ์ค‘ "ํ˜„์žฌ ์ธํ„ฐ๋„ท์ด 172.104.94.112๋ฅผ ๋ณธ๋‹ค"๋Š” ์ƒํƒœ๋Š” 2026-03-11 ์‹œ์ ์—๋Š” ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. + +### 3. HTTP๋Š” 51123 nginx ๊ธฐ๋ณธ ์ง„์ž…๋ฉด์œผ๋กœ ์‘๋‹ตํ•œ๋‹ค +- `curl -I http://goosefarminvesting.com` ๊ฒฐ๊ณผ๋Š” `HTTP/1.1 200 OK`, `Server: nginx`์ž…๋‹ˆ๋‹ค. +- ๋ณธ๋ฌธ ์ฒซ ์ค„ ํ™•์ธ ๊ฒฐ๊ณผ๋Š” Vite ์ •์  ์ž์‚ฐ์„ ๋กœ๋“œํ•˜๋Š” HTML์ด๋ฉฐ, ํ˜„์žฌ 51123 nginx๊ฐ€ ์–ด๋–ค ์ •์  ํ”„๋ŸฐํŠธ์—”๋“œ ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. +- ๋กœ์ปฌ ์„ค์ • ํŒŒ์ผ `infra/nginx/sites-available/default`์—๋Š” 80๋ฒˆ ํฌํŠธ `default_server`๊ฐ€ ์žˆ๊ณ  `root /var/www/html/robeing`, `server_name _;`๊ฐ€ ์„ค์ •๋ผ ์žˆ์Šต๋‹ˆ๋‹ค. +- ์ด ๊ตฌ์„ฑ์€ `goosefarminvesting.com` ์ „์šฉ 80๋ฒˆ ๋ธ”๋ก์ด ์—†์„ ๋•Œ ๊ธฐ๋ณธ ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•˜๋Š” ํ˜„์žฌ ๊ด€์ธก๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. + +### 4. HTTPS๋Š” `ro-being.com` ์ธ์ฆ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค +- `curl -I https://goosefarminvesting.com`๋Š” `SSL: no alternative certificate subject name matches target host name 'goosefarminvesting.com'`๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. +- `openssl s_client ... | openssl x509 -noout -subject -issuer -dates -ext subjectAltName` ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. + - `subject=CN = ro-being.com` + - `issuer=Let's Encrypt R12` + - `notBefore=Mar 11 09:13:15 2026 GMT` + - `notAfter=Jun 9 09:13:14 2026 GMT` + - `SAN: DNS:git.ro-being.com, DNS:ro-being.com` +- ์ฆ‰ 443 ์‘๋‹ต ์ž์ฒด๋Š” ์‚ด์•„ ์žˆ์ง€๋งŒ, `goosefarminvesting.com` ์ด๋ฆ„์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ๋„๋ฉ”์ธ ์ธ์ฆ์„œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +### 5. ๋กœ์ปฌ nginx ๊ธฐ์ค€ ํŒŒ์ผ์—๋Š” goosefarminvesting ์ „์šฉ 443 ์„œ๋ฒ„ ๋ธ”๋ก์ด ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค +- `infra/nginx/sites-available/default` ๊ฒ€์ƒ‰ ๊ธฐ์ค€ `goosefarminvesting.com` ๋ฌธ์ž์—ด์€ ์—†์Šต๋‹ˆ๋‹ค. +- ๊ฐ™์€ ํŒŒ์ผ์˜ 443 ์„œ๋ฒ„ ๋ธ”๋ก์€ `server_name ro-being.com;`์ด๋ฉฐ ์ธ์ฆ์„œ ๊ฒฝ๋กœ๋„ ์•„๋ž˜๋กœ ๊ณ ์ •๋ผ ์žˆ์Šต๋‹ˆ๋‹ค. + - `/etc/letsencrypt/live/ro-being.com/fullchain.pem` + - `/etc/letsencrypt/live/ro-being.com/privkey.pem` +- `git.ro-being.com`, `auth.ro-being.com`์šฉ ๋ธ”๋ก์€ ๋”ฐ๋กœ ์กด์žฌํ•˜์ง€๋งŒ `goosefarminvesting.com`์šฉ ๋ธ”๋ก์€ ์—†์Šต๋‹ˆ๋‹ค. + +### 6. ๊ธฐ์กด goosefarm ์„œ๋น„์Šค๋Š” ๋ฃจํŠธ ๋„๋ฉ”์ธ ์ „์šฉ์ด ์•„๋‹ˆ๋ผ ๊ฒฝ๋กœ ๊ธฐ๋ฐ˜์œผ๋กœ ์šด์˜๋ผ ์™”๋‹ค +- `infra/nginx/sites-available/default`์—๋Š” `location /goosefarm` ์ •์  ์„œ๋น™๊ณผ `location /goosefarm/api/ -> localhost:8200/api/` ํ”„๋ก์‹œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. +- ๊ธฐ์กด ํฌํŠธ/์ง„์ž…์  ๋ฌธ์„œ๋„ `goosefarminvesting`๋ฅผ `nginx -> 8200 ์ง์ ‘` ๊ตฌ์กฐ๋กœ ์„ค๋ช…ํ•˜์ง€๋งŒ, ๋„๋ฉ”์ธ ์ „์šฉ vhost๊นŒ์ง€๋Š” ์•„์ง ๊ณ ์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. + +### 7. `www.goosefarminvesting.com`์€ DNS๋Š” ์—ฐ๊ฒฐ๋์ง€๋งŒ vhost์™€ ์ธ์ฆ์„œ๊ฐ€ ์—†๋‹ค +- 2026-03-11 ์™ธ๋ถ€ ์กฐํšŒ ๊ธฐ์ค€ `dig +short CNAME www.goosefarminvesting.com` ๊ฒฐ๊ณผ๋Š” `goosefarminvesting.com.`์ž…๋‹ˆ๋‹ค. +- `dig +short A www.goosefarminvesting.com` ๊ฒฐ๊ณผ๋Š” `106.254.1.37`์ž…๋‹ˆ๋‹ค. +- `curl -I http://www.goosefarminvesting.com` ๊ฒฐ๊ณผ๋Š” `HTTP/1.1 200 OK`์ด๋ฉฐ, ์‘๋‹ต ๋ณธ๋ฌธ์€ ํ˜„์žฌ `ro-being` ๊ธฐ๋ณธ ์ •์  ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. +- `curl -I https://www.goosefarminvesting.com`๋Š” ์ด๋ฆ„ ๋ถˆ์ผ์น˜๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. +- `openssl s_client -connect www.goosefarminvesting.com:443 -servername www.goosefarminvesting.com` ๊ฒฐ๊ณผ๋Š” `subject=CN = ro-being.com`, SAN `DNS:git.ro-being.com, DNS:ro-being.com`์ž…๋‹ˆ๋‹ค. +- ์ฆ‰ `www`๋Š” DNS ๊ด€์ ์—์„œ๋Š” goosefarminvesting apex๋ฅผ ๋”ฐ๋ผ์˜ค์ง€๋งŒ, nginx์™€ TLS ๊ด€์ ์—์„œ๋Š” ์—ฌ์ „ํžˆ `ro-being` ๊ธฐ๋ณธ ์„œ๋ฒ„๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. + +## Interpretation + +### 1. ํ˜„์žฌ ์ด์Šˆ์˜ ๋‹ซํžŒ ์›์ธ์€ DNS๊ฐ€ ์•„๋‹ˆ๋ผ 51123 HTTPS vhost ๋ถ€์žฌ๋‹ค +- DNS๋Š” ์ด๋ฏธ `106.254.1.37`๋กœ ๋ฐ”๋€Œ์—ˆ์œผ๋ฏ€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ์ธ์ฆ์„œ ์˜ค๋ฅ˜๋Š” DNS ์ „ํŒŒ ์ง€์—ฐ๋ณด๋‹ค 51123 nginx์˜ 443 ๋ผ์šฐํŒ…/์ธ์ฆ์„œ ๋ถ€์žฌ๋กœ ํ•ด์„ํ•˜๋Š” ํŽธ์ด ๋งž์Šต๋‹ˆ๋‹ค. +- ์™ธ๋ถ€ ๊ด€์ธก๊ฐ’๊ณผ ๋กœ์ปฌ ์„ค์ • ํŒŒ์ผ์ด ๊ฐ™์€ ๋ฐฉํ–ฅ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. + +### 2. HTTP ์„ฑ๊ณต์€ ์„œ๋น„์Šค ์™„๋ฃŒ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ธฐ๋ณธ ์„œ๋ฒ„ ์‘๋‹ต์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค +- 80๋ฒˆ ํฌํŠธ ์‘๋‹ต์ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค๋งŒ์œผ๋กœ `goosefarminvesting.com` ์ „์šฉ ์ง„์ž…๋ฉด์ด ๊ตฌ์„ฑ๋๋‹ค๊ณ  ๋ณผ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. +- ํ˜„์žฌ๋Š” `server_name _` ๊ธฐ๋ณธ ์„œ๋ฒ„๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋‚ด๋ฆฌ๊ณ  ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ณ , ์ด๋Š” ๋„๋ฉ”์ธ ์ •ํ•ฉ์„ฑ๊ณผ HTTPS ์‹ ๋ขฐ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. + +### 3. ํ•ด๊ฒฐ ํฌ์ธํŠธ๋Š” ์„ธ ๊ฐ€์ง€๋กœ ์••์ถ•๋œ๋‹ค +- `goosefarminvesting.com`๊ณผ ํ•„์š” ์‹œ `www.goosefarminvesting.com`์šฉ `server_name` ๋ธ”๋ก ์ถ”๊ฐ€ +- ํ•ด๋‹น ๋ธ”๋ก์˜ ๋ฃจํŠธ/ํ”„๋ก์‹œ ์ •์ฑ…์„ ๊ธฐ์กด `/goosefarm` ์ž์‚ฐ๊ณผ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ• ์ง€ ๊ฒฐ์ • +- ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜๋Š” Let's Encrypt ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ nginx ์ ์šฉ + +### 4. ๋‚จ์€ ์ด์Šˆ๋Š” `www` ๋ณ„์นญ ์ˆ˜์šฉ ์‹คํ–‰์œผ๋กœ ๋‹ซํ˜”๋‹ค +- apex `goosefarminvesting.com`์€ ์ „์šฉ vhost์™€ ์ธ์ฆ์„œ๋กœ ์ด๋ฏธ ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค. +- ๋‚จ์€ ๊ตฌ์กฐ์  ๋นˆ์นธ์€ `www`๊ฐ€ DNS์—์„œ๋Š” ๋”ฐ๋ผ์˜ค์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ๋Š” ์ˆ˜์šฉ๋˜์ง€ ์•Š๋Š” ์ ์ž…๋‹ˆ๋‹ค. +- `www`๊ฐ€ `ro-being`์œผ๋กœ ๋ณด์ด๋˜ ๋™์ž‘์€ ๊ตฌ์กฐ์ ์œผ๋กœ ์ž˜๋ชป๋œ fallback์ด์—ˆ๊ณ , ์‹ค์ œ ์ ์šฉ์—์„œ `www -> apex 301`๋กœ ๊ต์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. + +## Unresolved +- ์ด ๋ฌธ์„œ ๋ฒ”์œ„์—์„œ ๋‚จ์€ ๋ฏธํ™•์ • ํ•ญ๋ชฉ์€ ์—†์Šต๋‹ˆ๋‹ค. + +## ์ƒ์œ„ ์›์น™/๊ทผ๊ฑฐ ๋ฌธ์„œ ์—ฐ๊ฒฐ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) diff --git a/journey/troubleshooting/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS์ „ํ™˜ํ›„_https_์ธ์ฆ์„œ๋ถˆ์ผ์น˜_์ด์Šˆ.md b/journey/troubleshooting/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS์ „ํ™˜ํ›„_https_์ธ์ฆ์„œ๋ถˆ์ผ์น˜_์ด์Šˆ.md new file mode 100644 index 0000000..5141d39 --- /dev/null +++ b/journey/troubleshooting/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS์ „ํ™˜ํ›„_https_์ธ์ฆ์„œ๋ถˆ์ผ์น˜_์ด์Šˆ.md @@ -0,0 +1,63 @@ +--- +tags: [infra, goosefarminvesting, dns, https, nginx, troubleshooting] +--- + +# 260311 goosefarminvesting ๋„๋ฉ”์ธ DNS์ „ํ™˜ํ›„ HTTPS ์ธ์ฆ์„œ๋ถˆ์ผ์น˜ ์ด์Šˆ + +**์ƒํƒœ**: ํ•ด๊ฒฐ (2026-03-11) + +## ์ƒ์œ„ ์›์น™ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) +- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) + +## ๊ด€๋ จ ๋ฌธ์„œ +- [Infra Journey](../README.md) +- [260310 51123 ํฌํŠธ ์ง„์ž…์  ํ”„๋กœ์ ํŠธ ๊ฒฝ๊ณ„ ๋ฆฌ์„œ์น˜](../research/260310_51123_ํฌํŠธ_์ง„์ž…์ _ํ”„๋กœ์ ํŠธ๊ฒฝ๊ณ„_๋ฆฌ์„œ์น˜.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ DNS HTTPS nginx ์ง„์ž…์ƒํƒœ ๋ฆฌ์„œ์น˜](../research/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS_https_nginx_์ง„์ž…์ƒํƒœ_๋ฆฌ์„œ์น˜.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ ์ธ์ฆ์„œ ๋ฐ nginx ์ •ํ•ฉํ™” ๊ณ„ํš](../plans/260311_goosefarminvesting_๋„๋ฉ”์ธ_์ธ์ฆ์„œ_๋ฐ_nginx_์ •ํ•ฉํ™”_๊ณ„ํš.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ vhost ์ธ์ฆ์„œ ์ ์šฉ ๋ฐ ์‹ค๋„๋ฉ”์ธ ๊ฒ€์ฆ](../worklog/260311_goosefarminvesting_๋„๋ฉ”์ธ_vhost_์ธ์ฆ์„œ_์ ์šฉ_๋ฐ_์‹ค๋„๋ฉ”์ธ_๊ฒ€์ฆ.md) + +## ๋ฌธ์ œ ์ •์˜ +- `goosefarminvesting.com`์˜ ๊ถŒํ•œ DNS๋Š” `hosting.kr` ๊ธฐ์ค€์œผ๋กœ ์ด๋ฏธ `106.254.1.37`์„ ๊ฐ€๋ฆฌํ‚ค์ง€๋งŒ, HTTPS ์ ‘์† ์‹œ `goosefarminvesting.com`์šฉ ์ธ์ฆ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ `ro-being.com` ์ธ์ฆ์„œ๊ฐ€ ๋‚ด๋ ค์˜ต๋‹ˆ๋‹ค. +- ๋”ฐ๋ผ์„œ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ ์ž์ฒด๋Š” 51123 ์ง„์ž…๋ฉด์œผ๋กœ ์ด๋™ํ–ˆ์ง€๋งŒ, ์™ธ๋ถ€ ์‚ฌ์šฉ์ž๋Š” HTTPS์—์„œ ์ด๋ฆ„ ๋ถˆ์ผ์น˜ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. + +## ์žฌํ˜„ ์กฐ๊ฑด +- 2026-03-11 ๊ธฐ์ค€ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์—์„œ `goosefarminvesting.com`์œผ๋กœ HTTP/HTTPS ์ ‘์† +- ํ™•์ธ ๋ช…๋ น + - `dig +short NS goosefarminvesting.com` + - `dig +short A goosefarminvesting.com` + - `curl -I http://goosefarminvesting.com` + - `curl -I https://goosefarminvesting.com` + - `openssl s_client -connect goosefarminvesting.com:443 -servername goosefarminvesting.com` + +## ํ™•์ธ๋œ ์‚ฌ์‹ค +- ๊ถŒํ•œ NS๋Š” `ns1.hostingkr.net`, `ns2.hostingkr.net`์ž…๋‹ˆ๋‹ค. +- A ๋ ˆ์ฝ”๋“œ๋Š” `106.254.1.37`์ž…๋‹ˆ๋‹ค. +- `http://goosefarminvesting.com`์€ `200 OK`๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. +- `https://goosefarminvesting.com`์€ ์ธ์ฆ์„œ CN `ro-being.com`์„ ๋‚ด๋ ค์ฃผ๋ฉฐ SAN๋„ `ro-being.com`, `git.ro-being.com`๋งŒ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. +- ๋กœ์ปฌ nginx ๊ธฐ์ค€ ํŒŒ์ผ `infra/nginx/sites-available/default`์—๋Š” `goosefarminvesting.com`์šฉ `server_name` ๋˜๋Š” ์ „์šฉ `ssl_certificate` ๋ธ”๋ก์ด ์—†์Šต๋‹ˆ๋‹ค. +- ๊ฐ™์€ ํŒŒ์ผ์—๋Š” `ro-being.com`์šฉ 443 ์„œ๋ฒ„ ๋ธ”๋ก๊ณผ `/etc/letsencrypt/live/ro-being.com/*` ์ธ์ฆ์„œ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. +- ์‹ค์ œ ์šด์˜ ํŒŒ์ผ ๊ธฐ์ค€์œผ๋กœ๋Š” `/etc/nginx/sites-enabled/default`๊ฐ€ `/etc/nginx/sites-available/default`์˜ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ณ„๋„ ํŒŒ์ผ์ด์—ˆ๊ณ , ์ด ๋ถˆ์ผ์น˜ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ ๋ฐ˜์˜ ํ›„์—๋„ live 443 ์‘๋‹ต์ด ๊ณ„์† `ro-being.com` ์ธ์ฆ์„œ๋ฅผ ์œ ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. + +## ์˜ํ–ฅ ๋ฒ”์œ„ +- ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €์˜ HTTPS ์‹ ๋ขฐ๊ฐ€ ๊นจ์ง‘๋‹ˆ๋‹ค. +- ๊ฒ€์ƒ‰์—”์ง„/๊ณต์œ  ๋ฏธ๋ฆฌ๋ณด๊ธฐ/์ž๋™ ์ˆ˜์ง‘๊ธฐ ๋“ฑ HTTPS ๊ธฐ๋ณธ ํด๋ผ์ด์–ธํŠธ๋„ ์ธ์ฆ์„œ ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +- DNS๋Š” ์ด๋ฏธ ์ƒˆ ์„œ๋ฒ„๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ, ๋‚จ์€ ๋ฌธ์ œ๋ฅผ FastComet DNS ์˜ค์„ค์ •์œผ๋กœ ํ•ด์„ํ•˜๋ฉด ์›์ธ์„ ์ž˜๋ชป ์งš๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. + +## ๋‹ซํž˜ ๊ทผ๊ฑฐ +- `goosefarminvesting.com` ์ „์šฉ 80/443 vhost๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ฃจํŠธ ๊ฒฝ๋กœ๋Š” `https://goosefarminvesting.com/goosefarm/`๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๋„๋ก ๊ณ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. +- Let's Encrypt `goosefarminvesting.com` ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ด 443 ๋ธ”๋ก์— ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. +- `/etc/nginx/sites-available/default`์™€ `/etc/nginx/sites-enabled/default`๋ฅผ ๊ฐ™์€ SSOT ์„ค์ •์œผ๋กœ ๋™๊ธฐํ™”ํ•˜๊ณ  `sudo systemctl reload nginx`๊นŒ์ง€ ๋ฐ˜์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. +- ์™ธ๋ถ€ ๊ฒ€์ฆ ๊ธฐ์ค€ `http://goosefarminvesting.com -> 301`, `https://goosefarminvesting.com -> 301`, `https://goosefarminvesting.com/goosefarm/ -> 200`, ์ธ์ฆ์„œ SAN `DNS:goosefarminvesting.com`์ด ํ™•์ธ๋์Šต๋‹ˆ๋‹ค. +- ์ดํ›„ `www.goosefarminvesting.com`๋„ ๊ฐ™์€ ์ธ์ฆ์„œ SAN๊ณผ `server_name`์— ํฌํ•จํ•ด `www -> goosefarminvesting.com` 301๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. +- ์™ธ๋ถ€ ๊ฒ€์ฆ ๊ธฐ์ค€ `http://www.goosefarminvesting.com -> 301 https://goosefarminvesting.com/`, `https://www.goosefarminvesting.com/goosefarm/ -> 301 https://goosefarminvesting.com/goosefarm/`, ์ธ์ฆ์„œ SAN `DNS:www.goosefarminvesting.com`๊นŒ์ง€ ํ™•์ธ๋์Šต๋‹ˆ๋‹ค. + +## ๋ฏธํ™•์ • ํ•ญ๋ชฉ +- ํ˜„์žฌ ์ด ์ด์Šˆ ๋ฒ”์œ„์—์„œ ๋‚จ์€ ๋ฏธํ™•์ • ํ•ญ๋ชฉ์€ ์—†์Šต๋‹ˆ๋‹ค. + +## ์ƒ์œ„ ์›์น™/๊ทผ๊ฑฐ ๋ฌธ์„œ ์—ฐ๊ฒฐ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) diff --git a/journey/worklog/260311_goosefarminvesting_๋„๋ฉ”์ธ_vhost_์ธ์ฆ์„œ_์ ์šฉ_๋ฐ_์‹ค๋„๋ฉ”์ธ_๊ฒ€์ฆ.md b/journey/worklog/260311_goosefarminvesting_๋„๋ฉ”์ธ_vhost_์ธ์ฆ์„œ_์ ์šฉ_๋ฐ_์‹ค๋„๋ฉ”์ธ_๊ฒ€์ฆ.md new file mode 100644 index 0000000..456be89 --- /dev/null +++ b/journey/worklog/260311_goosefarminvesting_๋„๋ฉ”์ธ_vhost_์ธ์ฆ์„œ_์ ์šฉ_๋ฐ_์‹ค๋„๋ฉ”์ธ_๊ฒ€์ฆ.md @@ -0,0 +1,36 @@ +--- +tags: [infra, goosefarminvesting, nginx, ssl, worklog] +--- + +# 260311 goosefarminvesting ๋„๋ฉ”์ธ vhost ์ธ์ฆ์„œ ์ ์šฉ ๋ฐ ์‹ค๋„๋ฉ”์ธ ๊ฒ€์ฆ + +## ๊ด€๋ จ ๋ฌธ์„œ +- [260311 goosefarminvesting ๋„๋ฉ”์ธ DNS์ „ํ™˜ํ›„ HTTPS ์ธ์ฆ์„œ๋ถˆ์ผ์น˜ ์ด์Šˆ](../troubleshooting/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS์ „ํ™˜ํ›„_https_์ธ์ฆ์„œ๋ถˆ์ผ์น˜_์ด์Šˆ.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ DNS HTTPS nginx ์ง„์ž…์ƒํƒœ ๋ฆฌ์„œ์น˜](../research/260311_goosefarminvesting_๋„๋ฉ”์ธ_DNS_https_nginx_์ง„์ž…์ƒํƒœ_๋ฆฌ์„œ์น˜.md) +- [260311 goosefarminvesting ๋„๋ฉ”์ธ ์ธ์ฆ์„œ ๋ฐ nginx ์ •ํ•ฉํ™” ๊ณ„ํš](../plans/260311_goosefarminvesting_๋„๋ฉ”์ธ_์ธ์ฆ์„œ_๋ฐ_nginx_์ •ํ•ฉํ™”_๊ณ„ํš.md) + +## ์ž‘์—… +- `infra/nginx/sites-available/default`์— `goosefarminvesting.com` ์ „์šฉ 80/443 vhost๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. +- ๋ฃจํŠธ ๋„๋ฉ”์ธ `/`๋Š” ๊ธฐ์กด basename ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด `https://goosefarminvesting.com/goosefarm/`๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๋„๋ก ๊ณ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. +- `sudo certbot certonly --webroot -w /var/www/html -d goosefarminvesting.com`๋กœ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. +- `/etc/nginx/sites-available/default`์™€ `/etc/nginx/sites-enabled/default`๋ฅผ ๊ฐ™์€ ์„ค์ •์œผ๋กœ ๋™๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. +- `sudo nginx -t` ํ†ต๊ณผ ํ›„ `sudo systemctl reload nginx`๋กœ ๋ฐ˜์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. +- ํ›„์†์œผ๋กœ `www.goosefarminvesting.com`์„ ๊ฐ™์€ vhost์˜ `server_name`์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. +- `sudo certbot certonly --webroot -w /var/www/html -d goosefarminvesting.com -d www.goosefarminvesting.com --cert-name goosefarminvesting.com --expand`๋กœ SAN์„ ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. +- `www.goosefarminvesting.com` ์š”์ฒญ์€ apex `goosefarminvesting.com`์œผ๋กœ 301 ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋˜๋„๋ก ๊ณ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. + +## ๊ฒ€์ฆ +- `http://goosefarminvesting.com -> 301 Location: https://goosefarminvesting.com/goosefarm/` +- `https://goosefarminvesting.com -> 301 Location: https://goosefarminvesting.com/goosefarm/` +- `https://goosefarminvesting.com/goosefarm/ -> 200` +- `https://goosefarminvesting.com/goosefarm/api/books -> 405 Allow: GET` +- `http://www.goosefarminvesting.com -> 301 Location: https://goosefarminvesting.com/` +- `https://www.goosefarminvesting.com -> 301 Location: https://goosefarminvesting.com/` +- `https://www.goosefarminvesting.com/goosefarm/ -> 301 Location: https://goosefarminvesting.com/goosefarm/` +- `openssl s_client -connect goosefarminvesting.com:443 -servername goosefarminvesting.com` ๊ธฐ์ค€ + - `subject=CN = goosefarminvesting.com` + - `SAN: DNS:goosefarminvesting.com, DNS:www.goosefarminvesting.com` + - `notAfter=Jun 9 11:06:13 2026 GMT` + +## ํ•œ ์ค„ ๊ฒฐ๋ก  +- `goosefarminvesting.com`๊ณผ `www.goosefarminvesting.com`์€ ์ด์ œ ๊ฐ™์€ ์ธ์ฆ์„œ์™€ vhost ์•„๋ž˜์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, `www`๋Š” apex๋กœ ์ •๊ทœํ™”๋˜๊ณ  ๋ฃจํŠธ๋Š” `/goosefarm/` ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ HTTPS ๊ธฐ์ค€์œผ๋กœ ์ •์ƒ ์ง„์ž…ํ•ฉ๋‹ˆ๋‹ค.