Security & Certificates
What Is a Certificate Signing Request (CSR)?
A certificate signing request is a signed structure that carries a public key and requested identity information to a certificate authority.
Published
What a CSR is
A CSR is an identity and public-key request used during certificate issuance. It is not itself a trusted or issued certificate.
CSR, certificate and private key: the relationship
| Artifact | Contains | Boundary |
|---|---|---|
| Private key | Secret signing material | Never send to the CA or paste unnecessarily |
| CSR | Public key and requested identity fields | Safe to submit through the CA's approved channel |
| Certificate | CA-issued identity and public key binding | Public artifact; trust still requires validation |
What is inside a CSR
- Subject distinguished name fields
- Public key and algorithm
- Signature algorithm and signature
- Requested extensions such as SANs when present
PKCS#10 in practical terms
PKCS#10 defines the common CSR structure. The decoder exposes useful fields without requiring an ASN.1 deep dive.
How a CSR is created
Generate a key pair, assemble the requested identity and extensions, then sign the request with the private key. Only the CSR is sent to the certificate authority.
What a CA does with the CSR
A CA applies its own identity-validation and issuance policies, then may issue a certificate containing an approved subset of the requested fields. Processes differ between CAs and certificate types.
Common CSR problems
- Using a CSR tied to the wrong private key.
- Requesting an incorrect subject or SAN set.
- Reusing a stale request after requirements change.
- Assuming the issued certificate must copy every request field.
Security boundary
The private key must remain private and is not needed to decode a CSR. Use a synthetic or public request when learning, and do not share raw private-key blocks.
Inspect a real CSR
Load the bundled synthetic PKCS#10 request to inspect actual parsed fields locally.
Try the example
Inspect a synthetic PKCS#10 CSR
This bundled request contains a public key and synthetic example.test identities, never a private key.
CN=example.test · SAN=example.test, www.example.testExpected result: The decoder identifies a PKCS#10 CSR and displays its subject, public key, signature, and requested SAN values.
Inspect a safe sample
Decode a certificate request
Read the subject, public key and requested extensions in a local-first decoder.