b2KIT

X.509 Certificate Builder

Build X.509 certificates with custom extensions, SANs, key usage, and extended key usage fields.

Tested tool guide Tested browser tools Checked August 16, 2026

What X.509 Certificate Builder does and how it behaves

Fill in a subject name, validity window, key usage flags, extended key usage OIDs, and one or more subject alternative names, and this tool assembles a full X.509 certificate structure and signs it with a freshly generated key pair, entirely inside your browser. It produces self-signed or test certificates, not ones chained to a trusted root. The detail people miss most: adding a Common Name is not enough for a server certificate. Modern browsers and most TLS clients only match hostnames against the SAN dNSName entries, so a certificate without a SAN block will fail hostname validation even if the CN looks correct.

How the result is produced

1

Key pair and self-signing

The tool generates a fresh public/private key pair for the certificate, then signs the resulting TBSCertificate structure with that same private key, producing a self-signed certificate rather than one issued by a separate CA key. There is no mechanism here for a third party to countersign it into an existing trust chain.

2

Extensions as DER-encoded fields

Key usage, extended key usage, and SAN values you enter are encoded as X.509v3 extension objects, each with an OID, criticality flag, and DER-encoded value, inside the certificate body per RFC 5280, rather than as free text. An extended key usage you type has to resolve to a recognized OID to mean anything to a relying party.

Good uses

  • Spinning up a self-signed certificate for a local HTTPS dev server or internal test environment
  • Testing how an application's certificate-parsing or hostname-validation code handles specific SAN entries, key usage combinations, or edge-case extensions
  • Prototyping the extension set (key usage, EKU, SAN) you plan to request from a CA before submitting a real production request

Limits and checks

  • A certificate from this tool is self-signed; browsers and OS trust stores will show it as untrusted until it is manually imported as a trusted root, which is fine for local testing but never appropriate for a public-facing service
  • Leaving out the SAN extension and relying on the Common Name for the hostname produces a certificate that fails validation in current browsers and most modern TLS libraries, which stopped honoring CN for hostname matching years ago
  • Because key generation and signing happen in your browser tab, the private key exists only in that session; closing the tab or reloading before exporting it leaves no way to recover the matching certificate's key

Common questions

Will browsers trust the certificate this tool produces?

No, not by default. It is self-signed, so it has no chain to a root certificate already trusted by the operating system or browser. You would need to manually add it to a local trust store for testing, which is appropriate for development but not for a public site.

Do I have to fill in every extension field?

No. Key usage, extended key usage, and SAN are all optional under RFC 5280 syntax, so leave unused ones blank rather than entering placeholder values. Whether a field is effectively required depends on context: public TLS server certificates are expected to carry a SAN under CA/Browser Forum baseline requirements even though X.509 itself does not mandate one.

References and verification

The behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools