SSL Center / Certificates / PKI
SSL / Certificates / PKI Center
Analyze a public certificate, decode a PEM or CSR, and follow diagnostics for chain, expiration, SAN and auto-enrollment errors.
Analyze un certificat HTTPS public
The server BAOI se connecte only to the port 443 a name of domain résolvant to a address IP public.
Décoder a certificate PEM
Décoder a demande CSR
The CSR can contain the informations publiques of demande of certificate. Never collez a key private.
openssl s_client -connect exemple.fr:443 -servername exemple.fr -showcerts
openssl x509 -in certificat.pem -text -noout
openssl x509 -in certificat.pem -noout -dates
openssl x509 -in certificat.pem -noout -ext subjectAltName
openssl x509 -in certificat.pem -noout -fingerprint -sha256
openssl verify -CAfile root.pem -untrusted intermediate.pem certificat.pem
openssl req -in demande.csr -text -noout
openssl req -new -newkey rsa:3072 -nodes -keyout server.key -out server.csr
Get-ChildItem Cert:\LocalMachine\My | Select Subject,Issuer,NotAfter,Thumbprint
certutil -pulse
certutil -config - -ping
certutil -store My
Get-WinEvent -LogName 'Microsoft-Windows-CertificateServicesClient-AutoEnrollment/Operational' -MaxEvents 50
Get-WebBinding -Protocol https
Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.NotAfter -lt (Get-Date).AddDays(30)}
keytool -list -v -keystore truststore.jks
keytool -importcert -alias mon-ca -file ca.pem -keystore truststore.jks
Center mission
8 playbooksTroubleshoot certificates by separating validity, name, chain, private key, TLS protocol, revocation and renewal automation without unnecessarily regenerating secrets.
Quick triage
- Record exact hostname, port, browser/client message and time.
- Inspect presented certificate, SAN, issuer and dates.
- Check intermediate chain and client trust store.
- Compare configured certificate with the one actually served by frontend/proxy.
- Before renewal, check ACME/PKI mechanism and private-key possession.
Decision tree
Renew from intended source and verify deployment on all frontends.
Compare SAN/CN with actual FQDN used.
Check intermediates and trust store, not just leaf certificate.
Separate protocol/cipher/SNI/client auth from certificate validity.
Intervention playbooks
Start read-only, collect evidence, then change one variable at a time.
01Expired certificateControlled change
Browser or service reports expiration and NotAfter is in the past.
Checks
- Confirm certificate actually served on public port.
- Identify renewal source and latest ACME/PKI job.
- Check all nodes behind load balancer.
Commands / evidence
openssl s_client -connect <host>:443 -servername <host> </dev/null 2>/dev/null | openssl x509 -noout -dates -subject -issueropenssl x509 -in <cert.pem> -noout -dates -fingerprint -sha256Expected result
Served certificate is within validity period and identical on all expected frontends.
Corrective actions
- Renew via official process then reload service without replacing key unnecessarily.
- Verify external certificate after deployment, not only local file.
Escalate when
Private key lost, CA unavailable or critical service cannot be safely reloaded.
02Certificate name mismatchControlled change
ERR_CERT_COMMON_NAME_INVALID or hostname missing from SANs.
Checks
- Read Subject Alternative Name from served certificate.
- Compare used URL, DNS aliases and redirects.
- Check SNI when multiple sites share same IP.
Commands / evidence
openssl s_client -connect <host>:443 -servername <host> </dev/null 2>/dev/null | openssl x509 -noout -text | grep -A1 "Subject Alternative Name"nslookup <host>Expected result
Exact FQDN used by client is present in SANs of served certificate.
Corrective actions
- Deploy a certificate covering actually required names.
- Fix binding/SNI if correct certificate exists but is not served.
Escalate when
Many legacy aliases, unsuitable wildcard or multi-tenant architecture.
03Incomplete certificate chainControlled change
Certificate appears valid but some clients report unknown issuer or unable to get local issuer.
Checks
- Inspect chain sent by server.
- Compare with CA-recommended chain.
- Test multiple clients/trust stores.
Commands / evidence
openssl s_client -showcerts -connect <host>:443 -servername <host> </dev/nullopenssl verify -CAfile <bundle.pem> <cert.pem>Expected result
Server presents leaf plus required intermediates and chain leads to trusted root.
Corrective actions
- Configure correct full chain without unnecessarily sending root.
- Retest from a client that previously failed.
Escalate when
Complex cross-signing, old clients or private PKI not distributed.
04TLS handshake failureRead-only
TCP connection opens but TLS fails before HTTP.
Checks
- Test SNI, TLS versions and compatible suites.
- Check client certificate/mTLS requirement.
- Read server/proxy logs at same timestamp.
Commands / evidence
openssl s_client -connect <host>:443 -servername <host> -tls1_2openssl s_client -connect <host>:443 -servername <host> -tls1_3curl -vk https://<host>/Expected result
A common TLS version negotiates and server presents its chain before HTTP application.
Corrective actions
- Fix minimum necessary protocol/cipher/binding.
- Do not re-enable obsolete TLS without security approval.
Escalate when
Legacy-client compatibility conflicts with security policy or HSM/load-balancer issue.
05CSR and private key mismatchIntrusive / escalation
Issued certificate cannot be imported or service reports key mismatch.
Checks
- Compare public-key fingerprint across CSR/certificate/key.
- Identify where CSR was generated.
- Never move or expose private key unnecessarily.
Commands / evidence
openssl pkey -in <key.pem> -pubout | openssl sha256openssl req -in <request.csr> -pubkey -noout | openssl sha256openssl x509 -in <cert.pem> -pubkey -noout | openssl sha256Expected result
All three public-key fingerprints match.
Corrective actions
- If mismatch, locate correct key or reissue CSR/certificate per procedure.
- Protect key permissions and backup.
Escalate when
Private key lost, HSM, regulated certificate or revocation required.
06Automatic ACME renewal failedControlled change
Certificate approaches expiry despite renewal cron/task.
Checks
- Read ACME logs and last success date.
- Check HTTP-01/DNS-01 challenge and zone access.
- Confirm reload/deploy hook after issuance.
Commands / evidence
certbot renew --dry-runsystemctl list-timers | grep -i certjournalctl -u certbot -n 100 --no-pagerExpected result
Dry run succeeds and renewed certificate is automatically deployed/reloaded.
Corrective actions
- Fix challenge, DNS credentials or deployment hook.
- Run dry-run after fix.
Escalate when
CA rate limit, critical DNS API or renewal shared across multiple nodes.
07Revocation / OCSPIntrusive / escalation
Client reports revoked certificate, OCSP unavailable or unknown status.
Checks
- Identify serial and OCSP/CRL URI.
- Check whether certificate was actually revoked.
- Check client network access to OCSP/CRL.
Commands / evidence
openssl x509 -in <cert.pem> -noout -serial -ocsp_uriopenssl ocsp -issuer <issuer.pem> -cert <cert.pem> -url <ocsp-url>Expected result
Status is good for active certificate and revocation services are reliably reachable.
Corrective actions
- If revoked, replace certificate and key according to cause.
- Fix OCSP/CRL access without globally disabling checking.
Escalate when
Key compromise, private CA or revocation affecting many services.
08Obsolete TLS/ciphersControlled change
Audit detects TLS 1.0/1.1 or weak suites still enabled.
Checks
- Inventory protocols actually used by clients.
- Test TLS 1.2/1.3 before disabling legacy.
- Identify dependent legacy devices.
Commands / evidence
openssl s_client -connect <host>:443 -servername <host> -tls1_2openssl s_client -connect <host>:443 -servername <host> -tls1_3nmap --script ssl-enum-ciphers -p 443 <host>Expected result
Supported clients work with modern TLS and weak protocols are absent.
Corrective actions
- Harden in stages with change window and rollback plan.
- Handle legacy clients separately.
Escalate when
Business device incompatible or global load-balancer/PKI change.
End-of-intervention checklist
- Retest externally using real FQDN.
- Verify date, SAN, chain and negotiated protocol.
- Check all nodes behind load balancer.
- Document renewal and next expiry.
- Verify expiry monitoring.