
Caixa de ferramentas PKI do lado do cliente que decodifica artefatos X.509, CSR, chain, CRL, PKCS#7 e PKCS#12, visualiza ASN.1, converte formatos e gera certificados autoassinados no navegador.
Uma caixa de ferramentas auto-hospedada, 100% do lado do cliente, para artefactos de PKI: certificados X.509, CSRs PKCS#10, cadeias, CRLs, pacotes PKCS#7 e PKCS#12, ASN.1 em bruto, conversão de formatos, impressões digitais e emissão de certificados. Uma alternativa respeitadora da privacidade e auto-hospedável aos descodificadores de certificados online.
Demonstração ao vivo: https://pki-toolbox.youkyi.net (a demonstração é a mesma compilação estática que pode auto-hospedar abaixo; nada do que colar sai do seu navegador).
Cada byte é analisado dentro do seu navegador com @peculiar/x509 e pkijs. Nada é alguma vez carregado, o backend apenas serve ficheiros estáticos. Não tem de acreditar na nossa palavra: veja Privacidade verificável abaixo.
| Ferramenta | Categoria | Descrição |
|---|---|---|
| Descodificador de certificados | Descodificação | Todos os campos de um certificado X.509: subject, issuer, validade, SANs, key usage, impressões digitais |
| Descodificador de CSR | Descodificação | Subject, chave pública, algoritmo de assinatura e extensões pedidas de um pedido PKCS#10 |
| Descodificador de cadeia | Descodificação | Divide um pacote PEM concatenado numa cadeia ordenada e verifica cada ligação issuer-to-subject |
| Descodificador de CRL | Descodificação | Entradas revogadas, datas e motivos de revogação |
| Descodificador de PKCS#7 | Descodificação | Todos os certificados transportados por um pacote PKCS#7 / CMS |
| Descodificador de PKCS#12 | Descodificação | Abre ficheiros .p12 / .pfx protegidos por palavra-passe |
| Impressões digitais | Inspeção | SHA-1 / SHA-256 / SHA-512 do DER |
| Visualizador ASN.1 | Inspeção | Árvore tag/length/value expansível de qualquer artefacto DER |
| Conversão de formatos | Conversão | PEM ↔ DER ↔ PKCS#7 |
| Certificado autoassinado | Geração | Certificado autoassinado e par de chaves (RSA / EC / Ed25519) via WebCrypto |
| Assinar a partir de uma CA | Geração | Emite um certificado a partir de uma CA existente: novo par de chaves ou CSR, leaf ou intermediate, com uma fullchain pronta a usar |
O catálogo vive num único registo (src/lib/tools.ts) que alimenta a barra de navegação e a grelha inicial.
Em torno das próprias ferramentas:
src/lib/pki/detect.ts) e abre na ferramenta que o lê./ coloca o cursor na entrada.A afirmação "nunca sai do seu navegador" é verificável a partir de dentro da página:
connect-src da página a partir da política com que foi servida, conta os pedidos capazes de transportar dados para fora desde que colou, e executa uma tentativa ao vivo que o navegador recusa à sua frente, citando a diretiva que a bloqueou.Execute sempre uma tag de release fixa e imutável (vX.Y.Z), nunca latest: uma tag móvel não pode ser auditada nem revertida. Para a garantia mais forte, fixe o digest da imagem (...@sha256:...).
docker run -p 8080:8080 ghcr.io/youkyi/pki-toolbox:v2.2.0
Depois abra http://localhost:8080.
Cada release é publicada, sob a mesma tag imutável vX.Y.Z, em:
| Registo | Imagem |
|---|---|
| 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
O repositório inclui um docker-compose.yml totalmente endurecido (sistema de ficheiros raiz só de leitura, capacidades removidas, limites de memória e CPU); use esse ficheiro diretamente em vez deste exemplo mínimo.
A imagem é construída a partir de nginx:alpine-slim, pesa cerca de 25 MB, escuta na porta não privilegiada 8080 e corre como utilizador não-root.
Requer Node 24 (a versão com que a imagem e o CI são construídos) e pnpm 11. A versão exata do pnpm é fixada pelo campo packageManager de package.json, por isso corepack enable é suficiente para o obter.
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