3-11. CLI 통합과 인증서 안정화 2026-03-19 ~ 03-26
v0.1.0 릴리스 이후에도 개발은 멈추지 않았다. 이 기간의 핵심 테마는 CLI 통합, 인증서 안정화, 프론트엔드 품질 개선이다.
03-19 ~ 03-20: 안정화와 정리
"또 할게 뭐 남았지?" — 3/19 세션 "지금 철수 프록시 rpress쪽에 로드맵 있는데 필요없어 다 지워줘" — 3/20 세션
rspress 문서의 불필요한 로드맵을 정리하고, 데스크톱 UI 버그를 수정했다:
03-21: CLI 크레이트 — "MCP와 동일한 기능의 CLI" 핵심
"mcp 와 동일한 cli도 제공할 생각인데 어떻게 생각해?" — 3/21 세션
MCP 서버에서 제공하던 14개+ 도구를 CLI에서도 사용할 수 있게 하는 대규모 작업.
실제 대화:
"바로 구현해도 될정도로 간단해?" "그래 리팩토링 먼저 하자 mcp에 있는거 cli가 다 실행할 수 있는게 낫지?" "clap이라는 라이브러리가 젤 많이 쓰는거야?" → "2번으로 가자" "근데 아까 내가 말한 스킬이 사용자에게 설치되게 했으면 좋겠다는거야 에이전트브라우저도 스킬 파일 제공하자나" — Claude Code Skill 설치 기능
cheolsu_ops — 공유 로직 레이어
MCP 서버와 CLI가 동일한 비즈니스 로직을 공유하도록 cheolsu_ops 크레이트를 만들었다. 3단계로 나눠서 진행:
- Phase 1: 크레이트 생성 + Store 로직 추출
- Phase 2: CRUD 도구 6개 이동 (search_traffic, get_transaction 등)
- Phase 3: 나머지 도구 전체 이동 (intercept_rules, scripts 등)
TLS 인증서 키 미러링
이 기능은 BoringSSL 검토에서 출발:
"BoringSSL 이거 프록시에 쓰면 어때?" — 3/21 "일부 인증서 통과 못하는 케이스가 많아서 그래" "boringSSL이 좀 더 openSSL보다 프록시 우회할때 낫단 이야길 들어서" "찰스 프록시나 MITM도 그렇게 하고 있어?" "그럼 우선순위 제안에서 높음들 한번 작업해봐줄래?"
결론적으로 BoringSSL 도입 대신, 인증서 키 타입 미러링으로 같은 효과를 달성:
"지금 블랙리스트 화이트리스트에 상관없이 허용하는 도메인 있자나?" — 3/21 세션 "BoringSSL 이거 프록시에 쓰면 어때?" — 3/21 세션, BoringSSL 검토
서버의 인증서 키 타입(RSA/ECDSA)을 감지해서 프록시가 동일한 타입으로 인증서를 생성하는 기능. ClientHello의 확장도 미러링해서 서버가 프록시의 존재를 눈치채기 어렵게 만들었다.
03-22: Block QUIC + 네트워크 테이블 개선
"메인브랜치로 이동해줘, 그리고 그 철수 쿼리 입력하는 부분 쪽에 뜨는 오른쪽 북마크랑 필터도 툴팁이 있었으면 좋겠고" — 3/22 세션
Block QUIC: Chrome이 Alt-Svc 헤더로 HTTP/3(QUIC)으로 전환하면 프록시를 우회한다. Alt-Svc 헤더를 스트립해서 QUIC 전환을 차단하는 옵션.
TanStack Table 마이그레이션: 네트워크 테이블을 TanStack Table로 전환해서 정렬, 필터링, 가상 스크롤 성능을 개선.
03-23: 구조 리팩토링
"동일한 기능인데 구조적으로 다른것들이 있을까? 리팩토링 하고 싶어서" — 3/23 세션
03-24: 인증서 안정화 + Rust 의존성 업데이트
"우리 인증서 전략중 MITM이나 찰스에 후달리는거 있어?" — 3/24 세션
MITM/Charles Proxy와 비교해서 인증서 전략의 약점을 분석하고 개선:
인증서 전략 강화
- 상류 인증서 검증 경고: 서버 인증서가 만료되거나 자체 서명이면 경고 표시
- CA/Leaf 유효기간 분리: CA는 10년, Leaf(도메인별) 인증서는 90일로 단축
- Serial Number 128비트: 기존 64비트에서 128비트로 확대해 충돌 가능성 제거
- Subject DN 완전 복제: 서버 인증서의 Country/State 정보를 프록시 인증서에 그대로 복제
Rust 의존성 대규모 업데이트
rcgen 0.14는 API가 크게 바뀌어서 tests, benches, examples, docs까지 전부 마이그레이션 필요.
03-25: 스크립팅 안정화 + Thundering Herd 방지
"인증서 더 안정화 시키려면 방법이?" — 3/25 세션
V8 OOM 크래시 수정
스크립팅 엔진의 V8 힙 메모리 제한이 설정되지 않아서, 큰 스크립트를 로드하면 OOM으로 크래시. V8 힙 크기 제한을 명시적으로 설정하고, RwLock 단순화, loaded_path 추적을 추가.
Thundering Herd 방지
동일 도메인에 대한 인증서 요청이 동시에 여러 개 들어오면, 각각이 인증서를 생성하려고 해서 리소스가 낭비된다(Thundering Herd 문제). moka의 try_get_with를 적용해서 동일 키에 대한 동시 생성을 방지.
CA 자동 재생성
CA 인증서 만료가 임박하면 자동으로 재생성하고, 키-인증서 매칭을 검증하는 로직 추가. SPKI(Subject Public Key Info) 비교로 키 쌍 일치를 확인.
숫자로 보는 3/19~3/26
CLI를 MCP와 동일 기능으로 만들기 위해 cheolsu_ops 공유 레이어를 구축하고, 인증서 전략을 Charles/MITM 수준으로 강화하며, V8 OOM/Thundering Herd 같은 프로덕션 이슈를 해결했다.