
Clientseitige PKI-Toolbox, die X.509-, CSR-, Chain-, CRL-, PKCS#7- und PKCS#12-Artefakte dekodiert, ASN.1 anzeigt, Formate konvertiert und selbstsignierte Zertifikate im Browser generiert.
Eine selbst gehostete, 100 % clientseitige Toolbox für PKI-Artefakte: X.509-Zertifikate, PKCS#10-CSRs, Ketten, CRLs, PKCS#7- und PKCS#12-Bundles, rohes ASN.1, Formatkonvertierung, Fingerabdrücke und Zertifikatsausstellung. Ein datenschutzfreundlicher, selbst hostbarer Ersatz für Online-Zertifikatsdecoder.
Live-Demo: https://pki-toolbox.youkyi.net (die Demo ist derselbe statische Build, den Sie unten selbst hosten können; nichts, was Sie einfügen, verlässt Ihren Browser).
Jedes Byte wird in Ihrem Browser mit @peculiar/x509 und pkijs geparst. Nichts wird jemals hochgeladen, das Backend liefert nur statische Dateien aus. Sie müssen das nicht einfach glauben: siehe Überprüfbare Privatsphäre unten.
| Tool | Kategorie | Beschreibung |
|---|---|---|
| Certificate decoder | Decoding | Jedes Feld eines X.509-Zertifikats: Subject, Issuer, Gültigkeit, SANs, Key Usage, Fingerabdrücke |
| CSR decoder | Decoding | Subject, öffentlicher Schlüssel, Signaturalgorithmus und angeforderte Erweiterungen einer PKCS#10-Anfrage |
| Chain decoder | Decoding | Zerlegt ein verkettetes PEM-Bundle in eine geordnete Kette und verifiziert jede Issuer-zu-Subject-Verknüpfung |
| CRL decoder | Decoding | Widerrufene Einträge, Daten und Widerrufsgründe |
| PKCS#7 decoder | Decoding | Jedes Zertifikat, das ein PKCS#7- / CMS-Bundle enthält |
| PKCS#12 decoder | Decoding | Öffnet passwortgeschützte .p12- / .pfx-Dateien |
| Fingerprints | Inspection | SHA-1 / SHA-256 / SHA-512 des DER |
| ASN.1 viewer | Inspection | Aufklappbarer Tag/Length/Value-Baum eines beliebigen DER-Artefakts |
| Format conversion | Conversion | PEM ↔ DER ↔ PKCS#7 |
| Self-signed certificate | Generation | Selbstsigniertes Zertifikat und Schlüsselpaar (RSA / EC / Ed25519) via WebCrypto |
| Sign from a CA | Generation | Stellt ein Zertifikat von einer bestehenden CA aus: neues Schlüsselpaar oder CSR, Leaf oder Intermediate, mit einsatzbereitem Fullchain |
Der Katalog lebt in einem einzigen Registry (src/lib/tools.ts), das die Navbar und das Home-Grid steuert.
Rund um die Tools selbst:
src/lib/pki/detect.ts) und öffnet sich im Tool, das es liest./ setzt den Cursor in die Eingabe.Die Behauptung "es verlässt niemals Ihren Browser" ist von innerhalb der Seite überprüfbar:
connect-src-Direktive der Seite aus der Richtlinie ausliest, mit der sie ausgeliefert wurde, die Anfragen zählt, die seit Ihrem Einfügen Daten nach außen tragen könnten, und einen Live-Versuch ausführt, den der Browser vor Ihnen verweigert, wobei die Direktive zitiert wird, die ihn blockiert hat.Führen Sie immer ein gepinntes, unveränderliches Release-Tag (vX.Y.Z) aus, niemals latest: ein bewegliches Tag kann nicht auditiert oder zurückgerollt werden. Für die stärkste Garantie pinnen Sie den Image-Digest (...@sha256:...).
docker run -p 8080:8080 ghcr.io/youkyi/pki-toolbox:v2.2.0
Öffnen Sie dann http://localhost:8080.
Jedes Release wird unter demselben unveränderlichen vX.Y.Z-Tag veröffentlicht bei:
| Registry | Image |
|---|---|
| GitHub Container Registry | ghcr.io/youkyi/pki-toolbox |
| Docker Hub | youkyi/pki-toolbox |
docker pull ghcr.io/youkyi/pki-toolbox:v2.2.0 # or
docker pull youkyi/pki-toolbox:v2.2.0
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
Das Repository liefert eine vollständig gehärtete docker-compose.yml (schreibgeschütztes Root-Dateisystem, entfernte Capabilities, Speicher- und CPU-Limits); verwenden Sie diese Datei direkt statt dieses minimale Beispiel.
Das Image wird aus nginx:alpine-slim gebaut, wiegt etwa 25 MB, lauscht auf dem nicht-privilegierten Port 8080 und läuft als Non-Root-Benutzer.
Erfordert Node 24 (die Version, mit der das Image und CI bauen) und pnpm 11. Die exakte pnpm-Version ist durch das packageManager-Feld von package.json gepinnt, sodass corepack enable ausreicht, um sie zu erhalten.
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 build -t pki-toolbox .
docker run -p 8080:8080 pki-toolbox