← 목록
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 확인)
~/.npmrc 토큰 3종 모두 무효: //pkg.crowny.org/(E401), //127.0.0.1:4873/·//localhost:4873/(ENEEDAUTH "need auth").
- htpasswd 파일 비어있음/없음 → 인증 가능한 사용자 0명.
- Verdaccio
data/packages 조회 = @crowny 패키지 0개 (CLAUDE.md의 "17개 패키지"와 불일치 → 스토리지/htpasswd 리셋 정황).
package.json의 publishConfig.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.
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. 브라우저 경고 없음.