/ssl SSL Certificate & CSR Decoder
Paste a PEM certificate or CSR and get the human-readable fields back — subject, issuer, SANs, key type and validity window. curlhub parses what you send; it never dials the host.
curl --data-binary @cert.pem https://curlhub.sh/ssl
Usage
With curl
curl --data-binary @cert.pem https://curlhub.sh/ssl
echo | openssl s_client -connect example.com:443 2>/dev/null | curl --data-binary @- https://curlhub.sh/ssl
With the CLI
cat cert.pem | curlhub ssl
curlhub ssl < request.csr
Structured output for scripts
curl -s --data-binary @cert.pem https://curlhub.sh/ssl -H 'Accept: application/json'
Output
curl --data-binary @cert.pem https://curlhub.sh/ssl
Certificate
Subject: CN=example.com
Issuer: CN=E5, O=Let's Encrypt
Valid From: 2026-01-02T00:00:00Z
Valid Until: 2026-04-02T00:00:00Z (expires in 74 days)
SANs: example.com, www.example.com
Public Key: EC P-256
Signature: ecdsa-with-SHA384
Parameters
| Input | What it does |
|---|---|
--data-binary @file | Decode a PEM certificate or CSR file. |
--data-binary @- | Pipe a PEM block in from stdin (e.g. from openssl s_client). |
Accept: application/json | Return the parsed fields as JSON. |
Recipes
Check expiry of a live host
echo | openssl s_client -connect example.com:443 2>/dev/null | curl --data-binary @- https://curlhub.sh/ssl | grep Until
openssl fetches the cert; curlhub reads it. curlhub itself never connects outbound.
Sanity-check a CSR before submitting
cat request.csr | curlhub ssl