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
防御工具静态分析加密/解密工具Web安全密码学隐私保护实用工具与框架
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,叶子或中间证书,附带可直接使用的 fullchain

工具目录位于单个注册表(src/lib/tools.ts)中,它驱动导航栏和首页网格。

围绕工具本身:

  • 在首页粘贴任何内容。 工件通过其字节被识别(PEM 标签或 DER 头,参见 src/lib/pki/detect.ts),并在读取它的工具中打开。
  • 工件被放入错误的工具时会提示,并提供正确的工具,同时将其内容一并转移。转移在内存中进行,绝不通过 URL,因此不会留在历史记录文件、代理日志和书签同步中。
  • 结果下方的 “同一工件在” 会将其传递到其他可读取它的工具,因此一次粘贴即可回答多个问题。
  • 结论条在任何细节行之前回答该工具存在的核心问题,最终会被引用到工单中的值只需一键即可复制。
  • 每个工具都接受粘贴的工件或上传的文件,并附带示例输入,以便你在没有工件时也能试用。/ 可将光标置于输入框中。

可验证的隐私

“它绝不会离开你的浏览器”这一说法可以从页面内部进行验证:

  • 每个输入框都带有一个 Verify 面板,它会从页面所接收的策略中读回页面自身的 connect-src 指令,统计自你粘贴以来能够将数据带出的请求数量,并现场运行一次浏览器会拒绝的尝试,同时引用阻止它的指令。
  • 粘贴的私钥会被命名并遮蔽:输入框会说明它包含什么以及它尚未离开页面,并提供 Clear it 和 Show it anyway。任何内容都不会被解码、传输或存储。
  • 在解码证书时打开浏览器的网络标签页:你不会看到任何请求。

运行它

始终运行固定、不可变的发布标签(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   # or
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,并以非 root 用户运行。

本地开发

需要 Node 24(镜像和 CI 构建所用的版本)和 pnpm 11。确切的 pnpm 版本由 package.json 的 packageManager 字段固定,因此 corepack enable 就足以获取它。

root@kitploit:~
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 镜像

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 以 <meta> 标签形式发出,带有 connect-src 'none';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)还是在新构建的镜像上;当基础操作系统已终止支持时镜像也会被拒绝,因此有漏洞的镜像永远不会被推送。许可证在单独的非阻塞环节中扫描。

版本管理与发布

本项目遵循语义化版本和约定式提交。重要变更记录在 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
    

流水线

Lint、单元测试和端到端测试在每次推送时运行。扫描、构建和发布阶段来自共享的 YouKyi-Infra/ci-infrastructure/ci-catalog 组件(trivy-scan、docker-build、gitlab-release),在 .gitlab-ci.yml 中按版本固定。

vX.Y.Z 标签会运行整条链:扫描、镜像构建、镜像扫描、将 vX.Y.Z 推送到 GitLab 注册表和公共镜像(ghcr.io、Docker Hub),然后是一个 GitLab Release,其说明是从 CHANGELOG.md 中提取的匹配 ## [X.Y.Z] 部分(空部分会使任务失败,而不是发布空说明)。

推送到 main 会运行相同的流水线,但不包含发布步骤,并且镜像任务仅在影响构建的文件发生变更时运行,因此仅文档或配置的推送不会重新构建镜像。

依赖项由 Renovate 保持最新,它扩展了共享的 Renovate-Bot/renovate-config 预设(参见 renovate.json)。

许可证

MIT

下载工具
sign.ts
src/routes/
  • @peculiar/x509 v2 通过 tsyringe 构建其对象,这需要在消费端提供 Reflect 元数据 polyfill,因此在每个使用该库的模块中,@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。