Install the complete package with local command reference and every published mode.
install certcertUse
A certificate can be within its validity period yet fail trust or host-name verification, and a valid certificate may still not match a private key. Use -v for trust/host checks, -m for the key pair, and -h -chain when you need to inspect what a remote server actually presents.
cert <operation> [args] [options]cert -h me [port]inspect the current host TLS certificate
cert -h <host|url> [port]inspect a remote TLS certificate
cert -i <file> [-p <pass>]inspect a local certificate, request, key or PKCS#12 bundle
cert -v <cert> [-ca <file>] [-chain <file>] [-host <name>] [-client]verify time, trust and hostname
cert -m <cert> <key> [-p <pass>]verify that a certificate and private key match
cert -key <out> [-rsa <bits>|-ec <curve>] [-p <pass>] [-f]create a private key
cert -csr <key> <out> <dn> [-san <list>] [-p <pass>] [-f]create a certificate signing request
cert -self <key> <out> <dn> [-san <list>] [-p <pass>] [-f]create a self-signed certificate
cert -sign <csr> <ca> <key> <out> [-san <list>] [-p <pass>] [-f]sign a request with a CA certificate
cert -der <cert> [out] [-f]convert a PEM certificate to DER
cert -pem <cert> [out] [-f]convert a DER certificate to PEM
cert -p12 <cert> <key> [out] [-p <pass>] [-kp <pass>] [-f]create a PKCS#12 bundle
cert -p12 -r <bundle> [dir] [-p <pass>] [-f]extract a PKCS#12 bundle
-j | -jsonshow -h, -i, -v or -m results as JSON
-t [seconds]use 5 seconds or a timeout from 1 to 300 for remote TLS
-Tuse a 300-second timeout for remote TLS
-4 | -6use IPv4 or IPv6 for remote TLS
-kallow an unverified remote TLS certificate
-chainshow the complete remote certificate chain
-sni <name>override the TLS SNI name
-ca <file>use an explicit CA file where supported
-host <name>verify a certificate for one hostname
-clientverify for TLS client use
-p <pass>provide an operation password
-fallow replacement for generated files
me resolves to the current HTTP host visible to PHP. Use it when you want to inspect the certificate of the site that is serving this terminal without retyping its hostname.
Remote certificates are verified by default. Private-key files are written with restrictive permissions. Use -k only to distinguish trust problems from basic TLS reachability, and avoid putting passwords directly into command history when a hidden prompt is available.
Use -j or -json with -h, -i, -v or -m when another command or API workflow needs machine-readable certificate diagnostics.
Run the prepared examples directly on the page. Their results are prebuilt and shown in the browser; no terminal command is executed on the server.
Install the current compatible version. Choose Base for the complete feature set or Minimum for the reduced package; use upgrade to update a module that is already installed.
Base and Minimum are two packages of the same current module release, not separate command versions.
Install the complete package with local command reference and every published mode.
install certInstall the reduced package. Local reference is omitted;
install cert -mInstall exactly this published version.
install cert -v 1.2.4Ask upgrade to check compatibility and replace the installed block only when needed.
upgrade certRemove the extension block while leaving the core and unrelated modules intact.
install cert -uExamples are copyable command lines, not actions executed by this website. Review paths, permissions and destructive flags before running them on a real project.
cert -h meOffline training example — no live HTTP, mail or TLS request
Host example.test
IP 192.0.2.80
Port 443
Status verified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTCcert -h example.testOffline training example — no live HTTP, mail or TLS request
Host example.test
IP 192.0.2.80
Port 443
Status verified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTCcert -h example.test -t 5Offline training example — no live HTTP, mail or TLS request
Host example.test
IP 192.0.2.80
Port 443
Status verified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTCcert -h example.test -TOffline training example — no live HTTP, mail or TLS request
Host example.test
IP 192.0.2.80
Port 443
Status verified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTCcert -h example.test -4Offline training example — no live HTTP, mail or TLS request
Host example.test
IP 192.0.2.80
Port 443
Status verified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTCcert -h example.test -6Offline training example — no live HTTP, mail or TLS request
Host example.test
IP 2001:db8::80
Port 443
Status verified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTCcert -h example.test -chainOffline training example — no live HTTP, mail or TLS request
Host example.test
IP 192.0.2.80
Port 443
Status verified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTC
Chain 2 certificatescert -h example.test -sni www.example.testOffline training example — no live HTTP, mail or TLS request
Host example.test
SNI www.example.test
IP 192.0.2.80
Port 443
Status verified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (www.example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTCcert -h example.test -kOffline training example — no live HTTP, mail or TLS request
Host example.test
IP 192.0.2.80
Port 443
Status unverified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTCcert -h example.test -jOffline training example — no live HTTP, mail or TLS request
{
"rows": [
{
"name": "Host",
"value": "example.test"
},
{
"name": "IP",
"value": "192.0.2.80"
},
{
"name": "Port",
"value": "443"
},
{
"name": "Status",
"value": "verified"
},
{
"name": "Time",
"value": "14.8 ms"
},
{
"name": "TLS",
"value": "TLSv1.3"
},
{
"name": "Cipher",
"value": "TLS_AES_256_GCM_SHA384"
},
{
"name": "Hostname",
"value": "valid (example.test)"
},
{
"name": "Subject",
"value": "CN=example.test"
},
{
"name": "Issuer",
"value": "CN=Training CA"
},
{
"name": "Valid to",
"value": "2027-10-31 00:00:00 UTC"
}
]
}cert -h example.test -o tmp/chain.pemOffline training example — no live HTTP, mail or TLS request
Host example.test
IP 192.0.2.80
Port 443
Status verified
Time 14.8 ms
TLS TLSv1.3
Cipher TLS_AES_256_GCM_SHA384
Hostname valid (example.test)
Subject CN=example.test
Issuer CN=Training CA
Valid to 2027-10-31 00:00:00 UTC
Saved sandbox/tmp/chain.pemcert -i certs/server.crtOffline training example — no live HTTP, mail or TLS request
File sandbox/certs/server.crt
Certificates 1
Certificate 1:
Subject CN=example.test, O=lil
Issuer CN=example.test, O=lil
Serial 01FAB2F36D62878EE1C3EF872CC4924ADAE7FACD
Valid from 2026-08-09 08:38:07 UTC
Valid to 2036-08-06 08:38:07 UTC
Validity valid, 3566 days remaining
SAN DNS:example.test, DNS:www.example.test
Key RSA
Key bits 2048
Signature RSA-SHA256
SHA256 FE:BE:96:6B:FD:A6:EA:E5:98:E1:66:7E:A3:32:72:7D:E3:DE:37:CC:D8:2F:64:63:76:73:26:C6:4B:F5:7D:CD
Constraints CA:FALSE
Key usage Digital Signature, Key Encipherment
Extended usage TLS Web Server Authentication
Subject key ID D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D
Authority key ID D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1Dcert -i certs/server.csrOffline training example — no live HTTP, mail or TLS request
File sandbox/certs/server.csr
Type CSR
Subject CN=example.test, O=lil
Key RSA
Key bits 2048cert -i certs/server.keyOffline training example — no live HTTP, mail or TLS request
File sandbox/certs/server.key
Type private key
Key RSA
Key bits 2048cert -i certs/server.p12 -p demoOffline training example — no live HTTP, mail or TLS request
File sandbox/certs/server.p12
Type PKCS#12
Certificates 1
Private key yes
Certificate 1:
Subject CN=example.test, O=lil
Issuer CN=example.test, O=lil
Serial 01FAB2F36D62878EE1C3EF872CC4924ADAE7FACD
Valid from 2026-08-09 08:38:07 UTC
Valid to 2036-08-06 08:38:07 UTC
Validity valid, 3566 days remaining
SAN DNS:example.test, DNS:www.example.test
Key RSA
Key bits 2048
Signature RSA-SHA256
SHA256 FE:BE:96:6B:FD:A6:EA:E5:98:E1:66:7E:A3:32:72:7D:E3:DE:37:CC:D8:2F:64:63:76:73:26:C6:4B:F5:7D:CDcert -i certs/server.crt -jsonOffline training example — no live HTTP, mail or TLS request
{
"rows": [
{
"name": "File",
"value": "sandbox/certs/server.crt"
},
{
"name": "Certificates",
"value": "1"
},
{
"name": "Certificate 1:",
"value": ""
},
{
"name": "Subject",
"value": "CN=example.test, O=lil"
},
{
"name": "Issuer",
"value": "CN=example.test, O=lil"
},
{
"name": "Serial",
"value": "01FAB2F36D62878EE1C3EF872CC4924ADAE7FACD"
},
{
"name": "Valid from",
"value": "2026-08-09 08:38:07 UTC"
},
{
"name": "Valid to",
"value": "2036-08-06 08:38:07 UTC"
},
{
"name": "Validity",
"value": "valid, 3566 days remaining"
},
{
"name": "SAN",
"value": "DNS:example.test, DNS:www.example.test"
},
{
"name": "Key",
"value": "RSA"
},
{
"name": "Key bits",
"value": "2048"
},
{
"name": "Signature",
"value": "RSA-SHA256"
},
{
"name": "SHA256",
"value": "FE:BE:96:6B:FD:A6:EA:E5:98:E1:66:7E:A3:32:72:7D:E3:DE:37:CC:D8:2F:64:63:76:73:26:C6:4B:F5:7D:CD"
},
{
"name": "Constraints",
"value": "CA:FALSE"
},
{
"name": "Key usage",
"value": "Digital Signature, Key Encipherment"
},
{
"name": "Extended usage",
"value": "TLS Web Server Authentication"
},
{
"name": "Subject key ID",
"value": "D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D"
},
{
"name": "Authority key ID",
"value": "D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D"
}
]
}cert -v certs/server.crt -host example.testOffline training example — no live HTTP, mail or TLS request
File sandbox/certs/server.crt
Purpose TLS server
Time valid
Trust invalid
Hostname valid (example.test)
Result invalidcert -v certs/server.crt -ca certs/server.crtOffline training example — no live HTTP, mail or TLS request
File sandbox/certs/server.crt
Purpose TLS server
Time valid
Trust valid
Result validcert -v certs/server.crt -clientOffline training example — no live HTTP, mail or TLS request
File sandbox/certs/server.crt
Purpose TLS client
Time valid
Trust invalid
Result invalidcert -m certs/server.crt certs/server.keyOffline training example — no live HTTP, mail or TLS request
Certificate sandbox/certs/server.crt
Private key sandbox/certs/server.key
Result matchcert -m certs/server.crt certs/server.key -jOffline training example — no live HTTP, mail or TLS request
{
"rows": [
{
"name": "Certificate",
"value": "sandbox/certs/server.crt"
},
{
"name": "Private key",
"value": "sandbox/certs/server.key"
},
{
"name": "Result",
"value": "match"
}
]
}cert -key tmp/demo.key -rsa 2048Offline training example — no live HTTP, mail or TLS request
README.txt
current.txt
demo.key
draft.txt
new.txtcert -key tmp/demo-ec.key -ec prime256v1Offline training example — no live HTTP, mail or TLS request
README.txt
current.txt
demo-ec.key
draft.txt
new.txtcert -csr certs/server.key tmp/demo.csr "CN=example.test" -san DNS:example.testOffline training example — no live HTTP, mail or TLS request
README.txt
current.txt
demo.csr
draft.txt
new.txtcert -self certs/server.key tmp/demo.crt "CN=example.test" -san DNS:example.testOffline training example — no live HTTP, mail or TLS request
README.txt
current.txt
demo.crt
draft.txt
new.txtcert -der certs/server.crt tmp/demo.derOffline training example — no live HTTP, mail or TLS request
README.txt
current.txt
demo.der
draft.txt
new.txtcert -pem certs/server.der tmp/demo.pemOffline training example — no live HTTP, mail or TLS request
README.txt
current.txt
demo.pem
draft.txt
new.txtcert -p12 certs/server.crt certs/server.key tmp/demo.p12Offline training example — no live HTTP, mail or TLS request
README.txt
current.txt
demo.p12
draft.txt
new.txtcert -p12 -r certs/server.p12 tmp/unpacked -p demoOffline training example — no live HTTP, mail or TLS request
server.cert.pem
server.key.pemcert -sign certs/server.csr certs/server.crt certs/server.key tmp/signed.crtOffline training example — no live HTTP, mail or TLS request
CA certificate is not allowed to sign certificatescert -v certs/server.crt -chain certs/server.crtOffline training example — no live HTTP, mail or TLS request
File sandbox/certs/server.crt
Purpose TLS server
Time valid
Trust invalid
Result invalidcert -h example.test -4 -6Offline training example — no live HTTP, mail or TLS request
Choose either IPv4 or IPv6cert -h example.test -t 301Offline training example — no live HTTP, mail or TLS request
Invalid timeoutcert -i certs/missing.pemOffline training example — no live HTTP, mail or TLS request
File not foundcert -v certs/missing.pemOffline training example — no live HTTP, mail or TLS request
Certificate not foundcert -m certs/server.crt certs/missing.keyOffline training example — no live HTTP, mail or TLS request
Private key not foundcert -key tmp/demo.key -rsa 1024Offline training example — no live HTTP, mail or TLS request
RSA bits must be 2048–16384 in steps of 256cert -h example.test -sniOffline training example — no live HTTP, mail or TLS request
SNI name requiredcert -key tmp/demo.key -ec unknownOffline training example — no live HTTP, mail or TLS request
Use prime256v1, secp384r1, or secp521r1cert -key tmp/demo.key -f -rsa 2048Offline training example — no live HTTP, mail or TLS request
README.txt
current.txt
demo.key
draft.txt
new.txtcert -self certs/missing.key tmp/missing.crt "CN=example.test"Offline training example — no live HTTP, mail or TLS request
Private key not foundcert -h example.test -ca missing-ca.pemOffline training example — no live HTTP, mail or TLS request
CA file not foundcert -unknownOffline training example — no live HTTP, mail or TLS request
Unknown cert operationcert -i certs/server.crt -j -jsonOffline training example — no live HTTP, mail or TLS request
{
"rows": [
{
"name": "File",
"value": "sandbox/certs/server.crt"
},
{
"name": "Certificates",
"value": "1"
},
{
"name": "Certificate 1:",
"value": ""
},
{
"name": "Subject",
"value": "CN=example.test, O=lil"
},
{
"name": "Issuer",
"value": "CN=example.test, O=lil"
},
{
"name": "Serial",
"value": "01FAB2F36D62878EE1C3EF872CC4924ADAE7FACD"
},
{
"name": "Valid from",
"value": "2026-08-09 08:38:07 UTC"
},
{
"name": "Valid to",
"value": "2036-08-06 08:38:07 UTC"
},
{
"name": "Validity",
"value": "valid, 3566 days remaining"
},
{
"name": "SAN",
"value": "DNS:example.test, DNS:www.example.test"
},
{
"name": "Key",
"value": "RSA"
},
{
"name": "Key bits",
"value": "2048"
},
{
"name": "Signature",
"value": "RSA-SHA256"
},
{
"name": "SHA256",
"value": "FE:BE:96:6B:FD:A6:EA:E5:98:E1:66:7E:A3:32:72:7D:E3:DE:37:CC:D8:2F:64:63:76:73:26:C6:4B:F5:7D:CD"
},
{
"name": "Constraints",
"value": "CA:FALSE"
},
{
"name": "Key usage",
"value": "Digital Signature, Key Encipherment"
},
{
"name": "Extended usage",
"value": "TLS Web Server Authentication"
},
{
"name": "Subject key ID",
"value": "D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D"
},
{
"name": "Authority key ID",
"value": "D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D"
}
]
}Finalizes Local and Server Help synchronization and localization safety for