Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pki-toolbox — クライアントサイドのPKIツールボックス。X.509、CSR、チェーン、CRL、PKCS#7、PKCS#12のアーティファクトをデコードし、ASN.1を表示し、フォーマットを変換し、ブラウザ内で自己署名証明書を生成します。 | Kitploit
ツール/GitHubGitHub/youkyi/pki-toolbox
防御ツール静的分析暗号化/復号化ツールウェブセキュリティ暗号化プライバシーユーティリティとフレームワーク
GitHubyoukyi/pki-toolbox

pki-toolbox

クライアントサイドのPKIツールボックス。X.509、CSR、チェーン、CRL、PKCS#7、PKCS#12のアーティファクトをデコードし、ASN.1を表示し、フォーマットを変換し、ブラウザ内で自己署名証明書を生成します。

リポジトリを見る
61731日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

pki-toolbox

license: MIT

PKI 成果物のためのセルフホスト型・100% クライアントサイドのツールボックス: 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、リーフまたは中間、すぐに使える fullchain 付き

カタログは単一のレジストリ (src/lib/tools.ts) にあり、ナビゲーションバーと ホームのグリッドを駆動します。

ツール自体に加えて:

  • ホームページに何でも貼り付けてください。 成果物はそのバイト列から認識され (PEM ラベルまたは DER ヘッダー、src/lib/pki/detect.ts を参照)、それを読み取るツールで開きます。
  • 間違ったツールに渡された成果物はその旨を表示し、正しいツールを提示して 内容を引き継ぎます。引き継ぎはメモリ内で行われ、URL を経由しないため、 履歴ファイル、プロキシログ、ブックマーク同期に残りません。
  • 結果の下にある 「同じ成果物を」 は、それを読み取る他のツールへ引き継ぐので、 一度の貼り付けで複数の疑問に答えます。
  • 判定バンドは、詳細行より前にツールの存在意義である問いに答え、チケットに引用される 値はワンクリックでコピーできます。
  • すべてのツールは貼り付けた成果物またはアップロードしたファイルを受け付け、成果物がなくても 試せるサンプル入力を同梱しています。/ を押すと入力欄にカーソルが移動します。

検証可能なプライバシー

「ブラウザの外に出ることはない」という主張は、ページ内から検証できます:

  • 各入力ボックスには検証パネルがあり、配信されたポリシーからそのページ自身の connect-src ディレクティブを読み戻し、貼り付け以降にデータを持ち出しうる リクエストを数え、ブラウザが目の前で拒否するライブ試行を実行して、 ブロックしたディレクティブを引用します。
  • 貼り付けられた秘密鍵は名前を付けられ、覆い隠されます。ボックスには何を保持しているか、 そしてそれがページ外に出ていないことが表示され、クリアとそれでも表示が用意されています。 何もデコード、送信、保存されません。
  • 証明書をデコードしている間にブラウザのネットワークタブを開いてください。 リクエストは一件も表示されません。

実行する

常に固定された不変のリリースタグ(vX.Y.Z)で実行し、決して latest を使わないでください。 移動するタグは監査もロールバックもできません。最も強力な保証を得るには、 イメージダイジェスト(...@sha256:...)を固定してください。

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
docker pull ghcr.io/youkyi/pki-toolbox:v2.2.0   # or
docker pull youkyi/pki-toolbox:v2.2.0

Docker Compose によるセルフホスト

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
docker compose up -d

リポジトリには完全に堅牢化された docker-compose.yml(読み取り専用のルート ファイルシステム、削除されたケイパビリティ、メモリと CPU の制限)が含まれています。この最小限の例ではなく、 そのファイルを直接使用してください。

イメージは nginx:alpine-slim からビルドされ、サイズは約 25 MB、非特権ポート 8080 で待ち受け、非 root ユーザーとして実行されます。

ローカル開発

Node 24(イメージと CI がビルドに使用するバージョン)と pnpm 11 が必要です。 正確な pnpm バージョンは package.json の packageManager フィールドで固定されているため、 corepack enable だけで取得できます。

pnpm install
pnpm dev          # dev server on http://localhost:5173
pnpm test         # unit tests, single run (Vitest)
pnpm test:unit    # the same tests, in watch mode
pnpm test:e2e     # end-to-end tests (Playwright)
pnpm test:e2e:ui  # the same, in the Playwright UI
pnpm check        # svelte-check / TypeScript
pnpm lint         # Prettier + ESLint
pnpm format       # rewrite files with Prettier
pnpm build        # static build into ./build
pnpm preview      # serve ./build locally

Docker イメージのビルド

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、sign.ts。src/routes/ 配下の各ルートは、それらを囲む薄い UI シェルです。
  • @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 を参照してください。

セキュリティ体制

  • アプリからのネットワーク送信なし。 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 は非 root ユーザーとしてポート 8080 で実行されます。同梱の docker-compose.yml は読み取り専用のルートファイルシステム、cap_drop: ALL、no-new-privileges、およびリソース制限を追加します。
  • サプライチェーン。 両方のベースイメージは、Renovate によって最新に保たれる不変のダイジェストに固定されています。CI は修正可能な HIGH/CRITICAL の検出で失敗し、それはリポジトリ(trivy fs)と新しくビルドされたイメージの両方で行われ、ベース OS がサポート終了となっている場合も拒否されます。イメージはタグなしの候補としてプッシュされ、ダイジェストでスキャンされ、スキャン済みのそのダイジェストのみが昇格されるため、脆弱なイメージがバージョンタグを受け取ることはありません。ライセンスは別の非ブロッキングパスでスキャンされます。
  • アクセシビリティ。 インターフェースは WCAG 2.2 AA に準拠しています。

バージョニングとリリース

このプロジェクトは 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. コミットにタグを付け、タグをプッシュします:
    git tag -a v1.2.3 -m "pki-toolbox v1.2.3"
    git push origin v1.2.3
    

パイプライン

ツールをダウンロード