Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pki-toolbox — 클라이언트 측 PKI 도구 상자로, 브라우저에서 X.509, CSR, 체인, CRL, PKCS#7 및 PKCS#12 아티팩트를 디코딩하고, ASN.1을 조회하며, 형식을 변환하고, 자체 서명 인증서를 생성합니다. | Kitploit
도구/GitHubGitHub/youkyi/pki-toolbox
Defensive ToolsStatic AnalysisEncryption/Decryption ToolsWeb SecurityCryptographyPrivacyUtilities & Frameworks
GitHubyoukyi/pki-toolbox

pki-toolbox

클라이언트 측 PKI 도구 상자로, 브라우저에서 X.509, CSR, 체인, CRL, PKCS#7 및 PKCS#12 아티팩트를 디코딩하고, ASN.1을 조회하며, 형식을 변환하고, 자체 서명 인증서를 생성합니다.

저장소 보기
51135일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

pki-toolbox

license: MIT

셀프 호스팅이 가능한, 100% 클라이언트 측 PKI 아티팩트 도구 모음: X.509 인증서, PKCS#10 CSR, 체인, CRL, PKCS#7 및 PKCS#12 번들, 원시 ASN.1, 형식 변환, 지문 및 인증서 발급. 프라이버시를 존중하는, 셀프 호스팅 가능한 온라인 인증서 디코더 대체품.

라이브 데모: https://pki-toolbox.youkyi.net (데모는 아래에서 셀프 호스팅할 수 있는 것과 동일한 정적 빌드이며, 붙여넣은 내용은 브라우저를 벗어나지 않습니다).

모든 바이트는 @peculiar/x509 와 pkijs를 사용하여 브라우저 내부에서 파싱됩니다. 아무것도 업로드되지 않으며, 백엔드는 정적 파일만 제공합니다. 이를 믿으라고 요구하지 않습니다: 아래의 검증 가능한 프라이버시를 참조하세요.

도구

도구분류설명
인증서 디코더디코딩X.509 인증서의 모든 필드: 주체, 발급자, 유효 기간, SAN, 키 사용, 지문
CSR 디코더디코딩PKCS#10 요청의 주체, 공개 키, 서명 알고리즘 및 요청된 확장
체인 디코더디코딩연결된 PEM 번들을 순서가 지정된 체인으로 분할하고 모든 발급자-주체 연결을 검증
CRL 디코더디코딩폐기된 항목, 날짜 및 폐기 사유
PKCS#7 디코더디코딩PKCS#7 / CMS 번들이 포함하는 모든 인증서
PKCS#12 디코더디코딩비밀번호로 보호된 .p12 / .pfx 파일 열기
지문검사DER의 SHA-1 / SHA-256 / SHA-512
ASN.1 뷰어검사모든 DER 아티팩트의 확장 가능한 태그/길이/값 트리
형식 변환변환PEM ↔ DER ↔ PKCS#7
자체 서명 인증서생성WebCrypto를 통한 자체 서명 인증서 및 키 쌍 (RSA / EC / Ed25519)
CA에서 서명생성기존 CA에서 인증서 발급: 새 키 쌍 또는 CSR, 리프 또는 중간, 바로 사용 가능한 전체 체인 포함

카탈로그는 내비게이션 바와 홈 그리드를 구동하는 단일 레지스트리(src/lib/tools.ts)에 있습니다.

도구 자체 주변에는:

  • 홈 페이지에 아무거나 붙여넣으세요. 아티팩트는 바이트(PEM 레이블 또는 DER 헤더, src/lib/pki/detect.ts 참조)로 인식되어 이를 읽는 도구에서 열립니다.
  • 잘못된 도구에 있는 아티팩트는 그 사실을 알리고 올바른 도구를 제안하며 내용을 넘겨줍니다. 이 전달은 메모리에서 이루어지며 URL을 통하지 않으므로 기록 파일, 프록시 로그 및 북마크 동기화에서 벗어납니다.
  • 결과 아래의 **"동일한 아티팩트를"**은 이를 읽는 다른 도구로 전달하므로, 한 번의 붙여넣기로 여러 질문에 답할 수 있습니다.
  • 판정 밴드는 세부 행보다 먼저 도구가 존재하는 이유에 대한 질문에 답하며, 티켓에 인용될 값은 클릭 한 번으로 복사할 수 있습니다.
  • 모든 도구는 붙여넣은 아티팩트 또는 업로드된 파일을 받으며, 없이도 시도할 수 있도록 샘플 입력을 제공합니다. /는 입력란에 캐럿을 놓습니다.

검증 가능한 프라이버시

"브라우저를 벗어나지 않는다"는 주장은 페이지 내부에서 검증할 수 있습니다:

  • 각 입력 상자에는 검증 패널이 있어, 페이지가 제공된 정책에서 페이지 자체의 connect-src 지시문을 다시 읽고, 붙여넣은 이후 데이터를 내보낼 수 있는 요청 수를 세며, 브라우저가 거부하는 실시간 시도를 여러분 앞에서 실행하여 이를 차단한 지시문을 인용합니다.
  • 붙여넣은 개인 키는 이름이 지정되고 가려집니다: 상자는 무엇을 담고 있는지, 그리고 그것이 페이지를 떠나지 않았음을 알려주며, 지우기와 그래도 표시를 제공합니다. 아무것도 디코딩, 전송 또는 저장되지 않습니다.
  • 인증서를 디코딩하는 동안 브라우저의 네트워크 탭을 열어보세요: 단 하나의 요청도 보이지 않을 것입니다.

실행하기

항상 고정된, 변경 불가능한 릴리스 태그(vX.Y.Z)를 실행하고, latest는 절대 사용하지 마세요: 움직이는 태그는 감사하거나 롤백할 수 없습니다. 가장 강력한 보장을 위해 이미지 다이제스트(...@sha256:...)를 고정하세요.

root@kitploit:~
docker run -p 8080:8080 ghcr.io/youkyi/pki-toolbox:v2.2.0

그런 다음 http://localhost:8080을 여세요.

공개 이미지

각 릴리스는 동일한 변경 불가능한 vX.Y.Z 태그로 다음에 게시됩니다:

레지스트리이미지
GitHub Container Registryghcr.io/youkyi/pki-toolbox
Docker Hubyoukyi/pki-toolbox
root@kitploit:~
docker pull ghcr.io/youkyi/pki-toolbox:v2.2.0   # 또는
docker pull youkyi/pki-toolbox:v2.2.0

Docker Compose로 셀프 호스팅

root@kitploit:~
services:
  pki-toolbox:
    image: ghcr.io/youkyi/pki-toolbox:v2.2.0
    ports:
      - '8080:8080'
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    read_only: true
root@kitploit:~
docker compose up -d

저장소는 완전히 강화된 docker-compose.yml(읽기 전용 루트 파일 시스템, 삭제된 기능, 메모리 및 CPU 제한)을 제공합니다. 이 최소 예제 대신 해당 파일을 직접 사용하세요.

이미지는 nginx:alpine-slim에서 빌드되며, 약 25 MB이고, 비특권 포트 8080에서 수신 대기하며 비루트 사용자로 실행됩니다.

로컬 개발

Node 24(이미지와 CI가 빌드하는 버전)와 pnpm 11이 필요합니다. 정확한 pnpm 버전은 package.json의 packageManager 필드에 고정되어 있으므로, corepack enable만으로 충분합니다.

root@kitploit:~
pnpm install
pnpm dev          # http://localhost:5173의 개발 서버
pnpm test         # 단위 테스트, 단일 실행 (Vitest)
pnpm test:unit    # 동일한 테스트, 감시 모드
pnpm test:e2e     # 종단 간 테스트 (Playwright)
pnpm test:e2e:ui  # 동일한 테스트, Playwright UI에서
pnpm check        # svelte-check / TypeScript
pnpm lint         # Prettier + ESLint
pnpm format       # Prettier로 파일 재작성
pnpm build        # ./build로 정적 빌드
pnpm preview      # ./build를 로컬에서 제공

Docker 이미지 빌드

root@kitploit:~
docker build -t pki-toolbox .
docker run -p 8080:8080 pki-toolbox

작동 방식

  • SvelteKit 2 + TypeScript, adapter-static으로 순수 HTML/JS로 빌드: 모든 라우트가 사전 렌더링되며 프로덕션에 Node 런타임이 없습니다.
  • 스타일링에는 TailwindCSS, youkyi 디자인 시스템 기반: 기본적으로 라이트, 시그니처 테마로 다크 (선택 사항은 유지됨).
  • 모든 파싱은 src/lib/pki/ 아래의 순수하고 테스트 가능한 함수에 있으며, Svelte 임포트가 없습니다: parse.ts, chain.ts, crl.ts, pkcs7.ts, pkcs12.ts, asn1.ts, convert.ts, format.ts, pem.ts, oids.ts, detect.ts, generate.ts 및 . 아래의 각 라우트는 이들을 둘러싼 얇은 UI 셸입니다.

보안 태세

  • 앱에서 네트워크 송신 없음. Content-Security-Policy는 SvelteKit에 의해 connect-src 'none'이 포함된 <meta> 태그로 출력되며, nginx는 frame-ancestors 'none', X-Frame-Options, X-Content-Type-Options, Referrer-Policy: no-referrer, 제한적인 Permissions-Policy 및 교차 출처 격리 헤더를 추가합니다. Vercel 데모는 동일한 헤더 세트를 전송합니다 (vercel.json 참조).
  • 적대적 입력 제한. 모든 디코더는 4 MB를 초과하는 입력을 거부하며, ASN.1 워커는 노드 수와 중첩 깊이가 제한되어 있어, 잘못된 형식의 아티팩트가 탭을 멈추게 할 수 없습니다.
  • 강화된 런타임. nginx는 포트 8080에서 비루트 사용자로 실행되며, 제공되는 docker-compose.yml은 읽기 전용 루트 파일 시스템, cap_drop: ALL, no-new-privileges 및 리소스 제한을 추가합니다.
  • 공급망. 두 기본 이미지 모두 Renovate에 의해 최신 상태로 유지되는 변경 불가능한 다이제스트에 고정됩니다. CI는 수정 가능한 HIGH/CRITICAL 발견 시 실패하며, 저장소(trivy fs)와 새로 빌드된 이미지 모두에서 그러하며, 기본 OS가 수명 종료일 때도 거부되므로, 취약한 이미지가 절대 푸시되지 않습니다. 라이선스는 별도의 비차단 단계에서 스캔됩니다.

버전 관리 및 릴리스

이 프로젝트는 Semantic Versioning과 Conventional Commits를 따릅니다. 주목할 만한 변경 사항은 CHANGELOG.md에 기록됩니다. 기여 규칙은 CONTRIBUTING.md에 있습니다.

릴리스 만들기

  1. CHANGELOG.md에서 ## [Unreleased] 제목을 오늘 날짜의 새 버전으로 이름을 바꿉니다. 예: ## [1.2.3] - 2026-06-01, 그 위에 새 빈 ## [Unreleased]를 추가하고, 파일 하단의 링크 참조를 업데이트합니다.
  2. package.json의 "version"을 동일한 번호로 올립니다.
  3. main에 커밋하고(관례적 커밋, 예: chore(release): 1.2.3) 푸시합니다.
  4. 커밋에 태그를 지정하고 태그를 푸시합니다:
    root@kitploit:~
    git tag -a v1.2.3 -m "pki-toolbox v1.2.3"
    git push origin v1.2.3
    

파이프라인

린트, 단위 테스트 및 종단 간 테스트는 모든 푸시에서 실행됩니다. 스캔, 빌드 및 릴리스 단계는 공유 YouKyi-Infra/ci-infrastructure/ci-catalog 컴포넌트(trivy-scan, docker-build, gitlab-release)에서 오며, .gitlab-ci.yml에 버전으로 고정됩니다.

vX.Y.Z 태그는 전체 체인을 실행합니다: 스캔, 이미지 빌드, 이미지 스캔, GitLab 레지스트리 및 공개 미러(ghcr.io, Docker Hub)로 vX.Y.Z 푸시, 그런 다음 노트가 CHANGELOG.md에서 추출된 일치하는 ## [X.Y.Z] 섹션인 GitLab Release (빈 섹션은 빈 노트를 게시하는 대신 작업을 실패시킵니다).

main에 푸시하면 릴리스 단계를 제외한 동일한 파이프라인이 실행되며, 이미지 작업은 빌드에 영향을 주는 파일이 변경된 경우에만 실행되므로, 문서나 구성만 변경한 푸시는 이미지를 다시 빌드하지 않습니다.

의존성은 Renovate에 의해 최신 상태로 유지되며, 이는 공유 Renovate-Bot/renovate-config 프리셋을 확장합니다 (renovate.json 참조).

라이선스

MIT

도구 다운로드
sign.ts
src/routes/
  • @peculiar/x509 v2는 tsyringe를 통해 객체를 빌드하며, 이는 소비자 측에서 Reflect 메타데이터 폴리필이 필요하므로, 라이브러리를 사용하는 모든 모듈에서 @abraham/reflection이 그보다 먼저 임포트됩니다.
  • PKCS#7 및 PKCS#12는 pkijs를 거치며, 그 Web Crypto 엔진은 src/lib/pki/engine.ts에 한 번 등록됩니다.
  • 단위 테스트는 tests/pki/(Vitest)에, 브라우저 테스트는 e2e/ (Playwright)에 있습니다. 픽스처는 실제 공개 루트(ISRG Root X1/X2)와 생성된 EC 체인 및 CSR입니다. scripts/generate-fixtures.mjs를 참조하세요.
  • 접근성. 인터페이스는 WCAG 2.2 AA를 충족합니다.