← 목록
기타 2026-06-09 3KB 읽기 4분

pkg.crowny.org 퍼블리시 인증 차단 + 게이트웨이 5.0.2 준비

결론 (다음 세션 필독)

pkg.crowny.org 레지스트리가 리셋된 상태로 보임 → 인증 없이 publish 불가. mpti 인증서는 별도로 완료됨(아래).

pkg.crowny.org 구조

  • pkg.crowny.org = 게이트웨이가 upstream http://127.0.0.1:4873(로컬 Verdaccio) 로 프록시. 같은 인스턴스.
  • Verdaccio config: /Users/ef/.config/verdaccio/config.yaml. @*/* publish 정책 = $authenticated.
  • 인증: htpasswd (./htpasswd = /Users/ef/.config/verdaccio/htpasswd).

차단 원인 (2026-06-09 확인)

  1. ~/.npmrc 토큰 3종 모두 무효: //pkg.crowny.org/(E401), //127.0.0.1:4873/·//localhost:4873/(ENEEDAUTH "need auth").
  2. htpasswd 파일 비어있음/없음 → 인증 가능한 사용자 0명.
  3. Verdaccio data/packages 조회 = @crowny 패키지 0개 (CLAUDE.md의 "17개 패키지"와 불일치 → 스토리지/htpasswd 리셋 정황).
  4. package.jsonpublishConfig.registry--registry 플래그를 덮어씀npm publish --registry ...로도 pkg.crowny.org로 감. 우회하려면 publishConfig 임시 수정 필요.

해소 방법 (사용자 액션 필요)

  • A) 사용자가 직접 로그인: ! npm adduser --registry http://127.0.0.1:4873 (대화형, ! 프리픽스로 세션에서 실행) → 토큰 생성 후 재게시.
  • B) htpasswd 백업/토큰 복구(레지스트리 리셋 전 상태가 있으면).
  • C) 신규 Verdaccio 사용자 생성을 허가하면 htpasswd에 직접 추가(보안상 사용자 결정 사항).

게이트웨이 패키지 (게시 대기)

  • /Users/ef/crowny-gateway @crowny/gateway 5.0.1 → 5.0.2 버전 범프 완료(package.json). 미게시.
  • 포함 수정(에이전트): lib/gateway.js(SNICallback에 base cert/key 병용 제거 → 도메인별 컨텍스트 보장), lib/ssl.js(_createSelfSignedBatch 도메인별 생성 + 기존 SAN cert 재사용 가드).
  • 중요: 게이트웨이는 이 소스(node bin/cli.js)에서 직접 구동 → 수정이 이미 라이브·재시작에도 지속됨. publish는 배포/타 소비자(peer mac-studio/macbook-intel)용일 뿐, 기능은 차단 안 됨.
  • 인증 해소 후: npm publish (publishConfig=pkg.crowny.org). 토큰이 4873용만 유효하면 publishConfig를 http://127.0.0.1:4873로 임시변경 후 publish.

mpti.tiomta.com 인증서 — 완료 ✓

  • cert-manager.sh add mpti.tiomta.com → certbot webroot(HTTP-01)로 crownybus.com-ext LE cert에 mpti.tiomta.com SAN 추가 발급.
  • 게이트웨이가 자체서명 crownybus.com/mpti.tiomta.com.crt를 우선하던 문제 → 그 자체서명 파일 백업·제거 후 POST http://127.0.0.1:9100/certs/renew 리로드.
  • 검증: curl --resolve mpti.tiomta.com:443:127.0.0.1 https://mpti.tiomta.com:443/200, ssl_verify=0(트러스트됨, -k 불필요), 서빙 cert SAN에 mpti.tiomta.com 포함, issuer=Let's Encrypt. 브라우저 경고 없음.