Home › Developer Tools › CSR Generator

CSR Generator

Create a certificate signing request (CSR) and a matching private key for an SSL/TLS certificate. Add every domain as a Subject Alternative Name, choose RSA or ECDSA, then send the CSR to your certificate authority. The key is generated on your device and never uploaded.

Last updated:

Subject and domains

Private key

Advertisement
Advertisement

How to use the CSR Generator

  1. Enter the Common Name, usually your main domain such as example.com.
  2. List extra domains in Subject Alternative Names (one per line or comma separated). Use *.example.com for a wildcard.
  3. Fill in the organization fields if your certificate type needs them (OV/EV certificates); domain-validated certificates only need the domain names.
  4. Choose the key type: RSA 2048 is accepted everywhere, ECDSA P-256 is smaller and faster. Or switch to Use my existing key and paste one.
  5. Press Generate CSR, then copy the CSR into your certificate authority's order form and download the private key. Store the key safely: you need it to install the certificate.

What goes into a CSR

A CSR (PKCS#10, RFC 2986) is a signed bundle of three things. The certificate authority copies the public key and, after validation, the names into your certificate.

FieldExampleNotes
Common Name (CN)example.comMain hostname, max 64 characters. Kept for compatibility; browsers check the SANs.
Subject Alternative Namesexample.com, www.example.comEvery hostname or IP the certificate must cover. *.example.com covers one level of subdomains but not example.com itself.
Organization (O), OUExample Inc.Checked for OV and EV certificates. Many CAs drop OU, and DV certificates ignore both.
Locality (L), State (ST)Austin, TexasWrite the state in full, not abbreviated.
Country (C)USTwo-letter ISO 3166 code (the United Kingdom is GB).
Public keyRSA 2048 / ECDSA P-256Derived from your private key. The private key itself is never part of the CSR.
SignatureSHA-256 with RSAProves you hold the private key that matches the public key.

Choosing a key type

KeySecurity levelCompatibilityNotes
RSA 2048~112-bitUniversalMinimum accepted by public CAs; the safe default.
RSA 3072 / 4096~128-bit / ~140-bitUniversalLarger keys and slower handshakes; use when a policy asks for it.
ECDSA P-256~128-bitAll modern clients and CAsSmall, fast and widely recommended for new sites.
ECDSA P-384~192-bitAll modern clients and CAsRequired by some government profiles.
Ed25519~128-bitFew public CAsFine for private PKI and internal services.

After you have the certificate

  1. Your CA sends a certificate (.crt or .pem) and usually an intermediate chain.
  2. Put the certificate followed by the intermediates in one file (the "full chain") and point your server at it together with the private key, for example in nginx: ssl_certificate fullchain.pem; ssl_certificate_key example.com.key;
  3. If the server says the key does not match, compare the public key hashes with the commands under the result: the CSR, the key and the certificate must all show the same value.
  4. Need a .pfx for Windows/IIS? Combine them with openssl pkcs12 -export -in cert.crt -inkey example.com.key -certfile chain.pem -out example.com.pfx.

Frequently asked questions

What is a CSR?

A certificate signing request is a small file in PKCS#10 format that contains your public key, the names the certificate should cover and a signature made with your private key. A certificate authority checks that you control the names and then issues a certificate for that public key. The CSR never contains the private key.

Do I need to keep the private key?

Yes. The certificate you get back only works together with the private key generated here. Download it and store it on the server where the certificate will be installed. If you lose it you must create a new CSR and have the certificate reissued.

RSA or ECDSA?

RSA 2048 is accepted by every certificate authority and client. ECDSA P-256 gives equivalent or better security with much smaller keys and faster TLS handshakes, and is supported by all modern browsers and CAs. RSA 3072 or 4096 is only needed when a policy requires it.

Why are Subject Alternative Names important?

Browsers ignore the Common Name and only check the Subject Alternative Name (SAN) extension. Every hostname the certificate should protect, including the bare domain and www, must be listed as a SAN. Certificate authorities usually copy the names from your CSR or order form into the SAN field.

Is it safe to generate the private key in a browser?

The key pair is created with the browser's built-in Web Crypto API and a cryptographically secure random generator. Nothing is sent to a server and nothing is stored after you close the page. If your security policy requires keys to be generated on the server itself, use the OpenSSL command shown under the result instead.

How can I check my CSR?

Run openssl req -in example.com.csr -noout -text -verify to print its contents and confirm the signature. You can also paste it into a CSR decoder. The summary under the result shows the subject, SANs, key type and signature algorithm.

What should I enter in the Country field?

The two-letter ISO 3166 country code of your organization, for example US, GB, DE or CA. Leave it empty for a domain-validated certificate if you prefer: most CAs ignore organization fields for DV certificates.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

SSL Certificate DecoderDecode PEM SSL/X.509 certificates: subject, issuer, expiry, SANs, key and fingerprints.RSA Key GeneratorGenerate 2048, 3072 or 4096-bit RSA key pairs as PEM, PKCS#1, JWK or OpenSSH, locally.Hash GeneratorGenerate MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files.Base64 Encoder DecoderEncode or decode Base64 text and files, and make data URIs.CSR DecoderDecode a PEM certificate signing request: subject, SANs, key size, signature and CA readiness checks.Password GeneratorCreate strong passwords and passphrases.MD5 Hash GeneratorGenerate MD5 hashes of text, lines or files and verify checksums.SHA-256 Hash GeneratorSHA-256 and HMAC-SHA256 hashes of text, lines or files, in hex or Base64.URL Encoder DecoderPercent-encode or decode URLs, query strings and form data.HTML Entity Encoder / DecoderEscape and unescape HTML entities, named or numeric.Bcrypt Hash Generator & CheckerCreate bcrypt password hashes and check a password against a hash.Binary TranslatorConvert text to binary, hex, octal and back.HMAC GeneratorGenerate and verify HMAC signatures with SHA-256, SHA-512, SHA-1 or MD5.CRC32 Checksum CalculatorCalculate CRC-32, CRC-32C, CRC-16 and Adler-32 checksums of text or large files.JWT DecoderDecode JSON Web Tokens, read the claims and expiry, and verify HS256 signatures.JWT GeneratorCreate and sign HS256, HS384 or HS512 JSON Web Tokens in your browser and verify them.Password Strength CheckerSee how strong a password really is, how long it takes to crack and how to improve it.Caesar CipherEncode and decode Caesar shift ciphers and crack unknown shifts with a ranked brute force.Vigenère CipherEncrypt and decrypt Vigenère and Autokey ciphers, and crack unknown keys with frequency analysis.Atbash CipherEncode and decode Atbash ciphers (A↔Z, B↔Y) in Latin or Hebrew, with a live letter mapping table.ASCII TableFull ASCII code chart 0–255 in decimal, hex, octal, binary and HTML, with search and copy.Unicode Character LookupFind Unicode characters by name or code point and copy them with UTF-8, HTML and code escapes.Punycode ConverterConvert international domain names, emails and URLs between Unicode and xn-- Punycode, in bulk.JSON Escape / UnescapeEscape text for a JSON string, unescape \n and \" back to text, or stringify a whole object.Binary to HexConvert binary to hex instantly with steps and signed mode.Hex to BinaryConvert hex to binary instantly with steps and signed mode.Binary CalculatorAdd, subtract, multiply, divide, AND, OR, XOR and shift binary numbers with decimal values.Hex CalculatorHexadecimal + − × ÷ and AND, OR, XOR, NOT, shifts with decimal and binary equivalents.Base32 Encoder / DecoderEncode and decode Base32 (RFC 4648), Base32hex, Crockford and z-base-32 from text, hex or files.Base58 Encoder / DecoderEncode and decode Base58 and Base58Check (Bitcoin alphabet) from text or hex, with checksum verification.Unicode Escape / UnescapeConvert text to \uXXXX, \u{...}, \x, &#...; or CSS escapes and decode them back.File Hash CheckerGet MD5, SHA-1, SHA-256 and SHA-512 checksums of files and verify them against a hash.TOTP GeneratorGenerate 2FA one-time codes from a secret key, create otpauth QR codes and verify codes.Text Encryption ToolEncrypt and decrypt text with a password using AES-256-GCM, entirely in your browser.Argon2 Hash GeneratorHash passwords with Argon2id, Argon2i or Argon2d and verify them against an encoded hash.Base64 to PDFDecode a Base64 string to a PDF with preview and download, or encode a PDF to Base64.Bitwise CalculatorCalculate AND, OR, XOR, NOT and bit shifts at 8–64 bits with a bit grid and all bases.MongoDB ObjectId to TimestampDecode a MongoDB ObjectId to its creation date, or build ObjectIds from dates for range queries.XML Escape / UnescapeEscape & < > " ' for XML text and attributes, unescape entities back, or wrap text in CDATA.Binary Search Tree VisualizerInsert, delete and find in BST, AVL and red-black trees with animated rotations and traversals.PGP Encrypt / DecryptEncrypt, decrypt, sign and verify PGP messages with your armored keys, entirely offline.PGP Key GeneratorGenerate an OpenPGP key pair (Curve25519, NIST ECC or RSA) with passphrase and expiry, offline.Quoted-Printable Encoder / DecoderEncode or decode quoted-printable email text (MIME) with UTF-8 and 76-character soft line breaks.Self-Signed Certificate GeneratorCreate a self-signed SSL certificate and key for localhost or dev servers, as PEM or PFX.SHA-1 Hash GeneratorSHA-1 and HMAC-SHA1 of text or files in hex or Base64, plus Git blob hashes and verify.SHA-512 Hash GeneratorSHA-512 and SHA-384 hashes of text or files in hex or Base64, HMAC and hash verification.SRI Hash GeneratorCreate Subresource Integrity hashes (sha256/384/512) and ready <script> or <link> tags.SSH Key GeneratorGenerate Ed25519 or RSA SSH key pairs in your browser: OpenSSH public key plus private key.String Escape / UnescapeEscape or unescape strings for JavaScript, Java, C#, Python, C, SQL, regex, CSV and shell.UTF-8 Encoder / DecoderConvert text to UTF-8 bytes in hex, decimal, binary, \x or % and decode bytes back to text.UUID Decoder & ValidatorDecode any UUID: version, variant, v1/v6/v7 timestamp and MAC node, plus bulk validation.Base64 to FileDecode Base64 or a data URI to a downloadable file; detects the real file type and previews it.File Encryption ToolEncrypt and decrypt any file with a password using AES-256-GCM, entirely in your browser.Passphrase GeneratorMake strong, memorable diceware passphrases from a 7,776-word list, with entropy in bits.Enigma Machine SimulatorEncrypt and decrypt with a virtual Enigma I, M3 or M4: rotors, rings, plugboard and lampboard.Hex Opacity CalculatorConvert opacity percent to a 2-digit HEX alpha code and full #RRGGBBAA color, with a 0-100% table.Playfair CipherEncrypt and decrypt Playfair ciphers from a keyword, with the 5x5 key square and every digraph step.Pwned Password CheckerCheck if a password appeared in data breaches; only 5 characters of its SHA-1 hash are sent.RSA Encryption ToolEncrypt text with an RSA public key and decrypt it with the private key using RSA-OAEP in your browser.SAML DecoderDecode SAMLRequest and SAMLResponse messages to readable XML, attributes and validity times.SSL Certificate ConverterConvert SSL certificates and keys between PEM, DER, PFX/P12 and P7B in your browser.Checksum CalculatorCompute 8-bit sum, two's complement LRC, XOR/BCC, NMEA, Fletcher and Internet checksums of bytes.PBKDF2 Hash GeneratorDerive PBKDF2 keys from a password, salt and iteration count with SHA-1, SHA-256 or SHA-512.Protobuf DecoderDecode raw Protocol Buffers hex or Base64 without a schema, or add a .proto for field names.
See all 65 Encoders, Hashes & Crypto →