Split PEM bundles into labeled blocks

Paste a fullchain or mixed PEM file and separate every certificate, key, CSR, parameter, or unknown PEM block in order — with type labels and fingerprints.

Try:
Split PEM blocks

About this tool

PEM Bundle Splitter separates a concatenated .pem, .crt, .csr, or fullchain.pem file into the individual -----BEGIN ...----- blocks it contains. It keeps the original order, names each block by its PEM label, maps common labels such as CERTIFICATE, PRIVATE KEY, and CERTIFICATE REQUEST to friendly types, and reports DER byte sizes plus optional SHA-256 fingerprints.

Use it before installing a TLS chain, separating a combined certificate/key export, or reviewing a mixed bundle without uploading sensitive material anywhere.

Worked example

Input:

-----BEGIN CERTIFICATE-----
AQID
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE REQUEST-----
BAUG
-----END CERTIFICATE REQUEST-----

With output = report and fingerprints off, the report starts with:

PEM bundle: 2 blocks
  certificate: 1 · certificate signing request: 1

Block 1 of 2
  type:     X.509 certificate
  label:    CERTIFICATE

Switch output to pem when you want normalized copy-pasteable blocks with comment headers and suggested filenames, or json when another script should consume the split result.

Limits & edge cases

FAQ

Can this split a full certificate chain?

Yes. Paste a fullchain.pem or any concatenated certificate chain and the tool returns each CERTIFICATE block in the same order it appeared in the bundle.

Does it understand private keys and CSRs?

Yes. The type map covers PKCS#8 private keys, encrypted private keys, RSA and EC private keys, public keys, certificate signing requests, parameters, PGP blocks, OpenSSH private keys, and unknown labels.

Why is there no Common Name based filename?

Common Name naming requires deep X.509 ASN.1 parsing of certificate subjects. This tool intentionally stays a generic splitter for certificates, keys, CSRs, and other PEM labels. It provides stable numbered filenames instead.

Are fingerprints calculated from the certificate text?

No. The SHA-256 fingerprint is calculated from the decoded DER bytes inside each PEM block. Whitespace or line wrapping changes in the PEM armor do not change the fingerprint.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool pem-bundle-splitter "-----BEGIN CERTIFICATE-----
AQID
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
CAk=
-----END PRIVATE KEY-----"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/pem-bundle-splitter/?pem=-----BEGIN%20CERTIFICATE-----%0AAQID%0A-----END%20CERTIFICATE-----%0A-----BEGIN%20PRIVATE%20KEY-----%0ACAk%3D%0A-----END%20PRIVATE%20KEY-----&output=report&fingerprints=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.