Verifying a new endpoint before it goes live
Confirm protocol versions, chain completeness and hostname coverage while there is still time to fix them without an incident.
Analyzes a host's TLS: certificate chain, expiry, SANs, HSTS, OCSP, protocols and ciphers.
Connects with TLS, walks the certificate chain, reports expiry, SANs, protocol, cipher, OCSP stapling and HSTS status.
Analyzes a host's TLS: certificate chain, expiry, SANs, HSTS, OCSP, protocols and ciphers.
example.com
Certificate valid until 2027-01-01 · SANs: example.com, www.example.com · HSTS: enabled · TLS 1.3 supported
A comprehensive posture report for one host.
Each check confirms or flags part of the TLS setup.
Your input is sent to YAS infrastructure because the tool requires server-side processing or public network queries. Input is not stored.
curl -X POST "https://yas.sh/api/v1/tools/tls-analyzer" \
-H "Content-Type: application/json" \
-d '{"input":"yas.sh"}'const res = await fetch("https://yas.sh/api/v1/tools/tls-analyzer", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"input": "yas.sh"
}),
});
const data = await res.json();import requests
r = requests.post("https://yas.sh/api/v1/tools/tls-analyzer", json={"input":"yas.sh"})
data = r.json()| Field | Type | Required | Description |
|---|---|---|---|
| input | string | Yes | Hostname, e.g. yas.sh (host:port form allowed) |
| port | integer | No (default 443) | TLS port (1–65535). Also accepted as host:8443. |
{ "result": { "authorized": true, "expiresInDays": 89, "sans": [...], "hsts": { "present": true, "maxAge": 63072000, "includeSubDomains": true, "preload": true }, ... } }Full TLS audit of a host: cert chain, expiry, SANs, protocol, cipher, OCSP stapling + HSTS header.
400 VALIDATION_ERROR — invalid input or unsupported option.413 PAYLOAD_TOO_LARGE — input exceeds the 64 KB limit.429 RATE_LIMIT_EXCEEDED — rate limit exceeded (60 req/min).The analyzer negotiates a TLS connection and reports what the server supports and selects: protocol versions, cipher suites, key exchange groups, certificate chain completeness and ordering, and extensions such as OCSP stapling and ALPN. Modern posture means TLS 1.2 and 1.3 enabled, everything earlier disabled, and forward-secret key exchange (ECDHE) as the only option — so that a future compromise of the private key cannot decrypt recorded past traffic.
TLS 1.3 removed most of the ways to configure this badly: static RSA key exchange, renegotiation, compression and the weak cipher suites behind BEAST, CRIME and Logjam are simply gone from the protocol. The remaining common misconfigurations are structural rather than cryptographic — an incomplete chain, a certificate that does not cover the requested name, or a chain served in the wrong order.
Confirm protocol versions, chain completeness and hostname coverage while there is still time to fix them without an incident.
Browsers ship intermediate certificates from previous visits; strict clients do not. A missing intermediate fails everywhere except the browser you tested with.
PCI DSS and similar regimes require documented disablement of TLS 1.0/1.1 and weak suites. The report is the artefact.
A load balancer or CDN change can silently reintroduce old protocol versions across an entire fleet.
What this tool deliberately does not do, and where it will disagree with other implementations.