CSR (Certificate Signing Request) is a file with your public key and organisation data that you send to a CA to obtain an SSL certificate. Generated with openssl, requires: private key, Common Name (CN = domain), SAN for multi-domain. Let's Encrypt does not need a CSR — it uses ACME.
Below: step-by-step, working examples, common pitfalls, FAQ.
openssl versionopenssl genrsa -out privkey.pem 2048openssl req -new -key privkey.pem -out request.csrrequest.csr to the CA (DigiCert, Sectigo, GeoTrust)| Scenario | Config / Record |
|---|---|
| Minimal CSR (one line) | openssl req -new -newkey rsa:2048 -nodes -keyout privkey.pem -out request.csr -subj "/C=US/ST=CA/O=Acme/CN=example.com" |
| CSR with Subject Alternative Names (SAN) | openssl req -new -key privkey.pem -out request.csr -config san.cnf |
| san.cnf for multi-domain | [req]
distinguished_name = req_dn
req_extensions = v3_req
[req_dn]
CN = example.com
[v3_req]
subjectAltName = DNS:example.com,DNS:www.example.com,DNS:api.example.com |
| Inspect CSR | openssl req -text -noout -in request.csr |
| Wildcard cert | CN = *.example.com + SAN = *.example.com, example.com |
-aes256) — nginx prompts at restart. Use -nodes.SSL/TLS is the encryption protocol that protects data between the browser and server. Our tool analyzes the certificate, chain of trust, TLS version, and knownvulnerabilities.
Issuer, validity period, signature algorithm, covered domains (SAN), and validation type (DV/OV/EV).
Full chain verification: from leaf certificate through intermediates to root CA.
Protocol version (TLS 1.2/1.3), cipher suites, Perfect Forward Secrecy (PFS) support.
Set up a monitor — get Telegram and email alerts 30/14/7 days before expiration.
SSL certificate monitoring
TLS config audit
HTTPS as ranking factor
customer trust
www and subdomains.Strict-Transport-Security header forces browsers to always use HTTPS.SSL certificate monitoring, check history and alerts 30 days before expiry.
Sign up freeNo. Let's Encrypt uses the ACME protocol — certbot generates the key and CSR automatically. Just run <code>certbot --nginx -d example.com</code>.
Subject Alternative Names — an X.509 extension that lets one cert cover multiple domains. Modern browsers ignore CN in favor of SAN. Always include the domain in SAN.
DV (Domain Validation) — only ownership check (Let's Encrypt). OV (Organization Validation) — + legal entity verification. EV (Extended Validation) — + in-depth review, green address bar (deprecated in browsers 2019+).
Yes, you can reuse the same CSR (same key) on renewal. Rotating the key is the safer practice.