Repository navigation
정리: 제품 웹 이름을 셀프서비스로 301 리다이렉트 - #58
Merged
Merged
Conversation
왜: 제품 사이트 이름은 443에서 메일용 기본 인증서를 받아 이름이 맞지 않았고, 그 이름을 받을 vhost도 없어 Cloudflare strict 연결이 526으로 끝났다. 웹메일은 없으므로 맨 도메인·www 요청을 계정 셀프서비스의 정확한 루트 URL로 보내는 것이 현재 제품 표면과 맞다. - IONOSPHERE_HOST_WEB + IONOSPHERE_WEB_REDIRECT_URL을 짝으로 검증한다. 하나만 있거나 http URL, 자격증명·프래그먼트·제어문자, 다른 서비스와 이름 충돌, 자기 리다이렉트면 기동을 막는다. - 443 프런트가 로컬 301을 낸다. 요청 경로·쿼리는 섞지 않아 open redirect·CRLF 경로가 없다. 메서드와 무관하게 301, HEAD는 본문 없음, 브라우저 캐시는 1시간이다. - route-only webTls 소스가 IONOSPHERE_TLS_WEB_TLS_*를 읽는다. 웹 이름에만 SNI로 제시하고, 6시간 폴링 갱신도 웹 라우트만 바꾼다. 기동 때 cert-api가 실패해도 라우트는 남아 다음 폴링 성공 때 재시작 없이 전용 인증서가 붙는다. 기본·admin 인증서는 건드리지 않는다. - IONOSPHERE_HTTPS_FRONT_PORT 없이 웹 이름을 켜면 기동을 막아 설정 드리프트를 드러낸다. 검증: 독립 리뷰 APPROVE. npm run verify 초록(테스트 2,805개, 실패 0), 관련 테스트 77개 통과. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
제품 웹 이름을 443에서 전용 SNI 인증서로 받고, 계정 셀프서비스의 정확한 루트 URL로 301 보냅니다. 웹메일이나 랜딩 페이지는 추가하지 않습니다.
IONOSPHERE_HOST_WEB+IONOSPHERE_WEB_REDIRECT_URL은 짝입니다. 불완전하거나 위험한 URL이면 기동을 막습니다.IONOSPHERE_TLS_WEB_TLS_*는 라우트 전용 인증서 소스입니다. 기본·admin 인증서와 분리됩니다.검증
npm run verify: 초록(리베이스 뒤 재실행)배포 순서
코드를 먼저 배포하고, 그다음 세 서버 env에 웹 이름·리다이렉트 URL·
mailer-webcert-api 소스를 넣어 한 대씩 재시작합니다. env가 먼저 들어가면 기존 코드는 값을 모르므로 의미가 없습니다.배포 뒤 와이어에서 확인합니다.
이 PR에는 마이그레이션과 운영 env 변경이 없습니다.
🤖 Generated with Claude Code