--- 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)