changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "certificate": {
+ "description": "Parsed leaf certificate fields.",
+ "properties": {
+ "chain": {
+ "description": "Presented certificate chain, leaf to root.",
+ "items": {
+ "properties": {
+ "issuer": {
+ "description": "Chain cert issuer DN fields.",
+ "type": "object"
+ },
+ "serial_number": {
+ "description": "Chain cert serial number.",
+ "type": "string"
+ },
+ "signature_algorithm": {
+ "description": "Chain cert signature algorithm.",
+ "type": "string"
+ },
+ "subject": {
+ "description": "Chain cert subject DN fields.",
+ "type": "object"
+ },
+ "valid_from": {
+ "description": "Chain cert not-before, Y-m-d H:i:s.",
+ "type": "string"
+ },
+ "valid_to": {
+ "description": "Chain cert not-after, Y-m-d H:i:s.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "connection_time": {
+ "description": "TLS connect time in milliseconds.",
+ "type": "number"
+ },
+ "extensions": {
+ "description": "Parsed X.509 extensions, including subject_alt_names, key_usage, extended_key_usage, basic_constraints.",
+ "type": "object"
+ },
+ "fingerprints": {
+ "description": "Uppercase certificate fingerprints.",
+ "properties": {
+ "md5": {
+ "description": "MD5 fingerprint.",
+ "type": "string"
+ },
+ "sha1": {
+ "description": "SHA-1 fingerprint.",
+ "type": "string"
+ },
+ "sha256": {
+ "description": "SHA-256 fingerprint.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "issuer": {
+ "description": "Issuer DN fields.",
+ "type": "object"
+ },
+ "pem": {
+ "description": "PEM-encoded leaf certificate.",
+ "type": "string"
+ },
+ "public_key": {
+ "description": "Public key details.",
+ "properties": {
+ "algorithm": {
+ "description": "OpenSSL key type constant.",
+ "type": "integer"
+ },
+ "bits": {
+ "description": "Key size in bits.",
+ "type": "integer"
+ },
+ "key": {
+ "description": "PEM-encoded public key.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "serial_number": {
+ "description": "Certificate serial number.",
+ "type": "string"
+ },
+ "signature_algorithm": {
+ "description": "Signature algorithm short name, e.g. RSA-SHA256.",
+ "type": "string"
+ },
+ "subject": {
+ "description": "Subject DN fields (common_name, organization, country, etc.).",
+ "type": "object"
+ },
+ "valid_from": {
+ "description": "Not-before date, Y-m-d H:i:s.",
+ "type": "string"
+ },
+ "valid_from_timestamp": {
+ "description": "Not-before as a Unix timestamp.",
+ "type": "integer"
+ },
+ "valid_to": {
+ "description": "Not-after date, Y-m-d H:i:s.",
+ "type": "string"
+ },
+ "valid_to_timestamp": {
+ "description": "Not-after as a Unix timestamp.",
+ "type": "integer"
+ },
+ "version": {
+ "description": "X.509 version number.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "error": {
+ "description": "Present when success is false — the validation or connection failure reason.",
+ "type": "string"
+ },
+ "hostname": {
+ "description": "The hostname that was queried, echoed back.",
+ "type": "string"
+ },
+ "port": {
+ "description": "The TLS port that was connected to.",
+ "type": "integer"
+ },
+ "resolved_ip": {
+ "description": "The public IP the TLS socket was pinned to.",
+ "type": "string"
+ },
+ "security_analysis": {
+ "description": "Heuristic grading of key exchange, cipher strength, protocol support, and certificate transparency.",
+ "properties": {
+ "certificate_transparency": {
+ "description": "Whether SCT/CT markers were detected.",
+ "type": "object"
+ },
+ "cipher_strength": {
+ "description": "Signature algorithm strength and grade.",
+ "type": "object"
+ },
+ "key_exchange": {
+ "description": "Key algorithm, size, strength, and grade.",
+ "type": "object"
+ },
+ "overall_grade": {
+ "description": "Overall letter grade, e.g. A+.",
+ "type": "string"
+ },
+ "protocol_support": {
+ "description": "Assumed TLS/SSL protocol support flags.",
+ "type": "object"
+ },
+ "recommendations": {
+ "description": "Suggested hardening actions.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "security_features": {
+ "description": "Detected positive security features.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "success": {
+ "description": "True when the certificate was fetched and parsed.",
+ "type": "boolean"
+ },
+ "timestamp": {
+ "description": "Server-side inspection time, Y-m-d H:i:s.",
+ "type": "string"
+ },
+ "tls_verified": {
+ "description": "Always false — peer verification is intentionally disabled so invalid certs can still be inspected. Not a trust decision.",
+ "type": "boolean"
+ },
+ "validation": {
+ "description": "Expiry and weakness checks on the leaf certificate.",
+ "properties": {
+ "days_since_issued": {
+ "description": "Days since the not-before date.",
+ "type": "integer"
+ },
+ "days_until_expiry": {
+ "description": "Days remaining until expiry (negative if expired).",
+ "type": "integer"
+ },
+ "errors": {
+ "description": "Fatal issues (expired, not yet valid, MD5).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "expiry_status": {
+ "description": "Bucketed expiry urgency.",
+ "enum": [
+ "valid",
+ "notice",
+ "warning",
+ "critical",
+ "expired"
+ ],
+ "type": "string"
+ },
+ "is_expired": {
+ "description": "True when past not-after.",
+ "type": "boolean"
+ },
+ "is_not_yet_valid": {
+ "description": "True when before not-before.",
+ "type": "boolean"
+ },
+ "is_valid": {
+ "description": "True when now is within the validity window.",
+ "type": "boolean"
+ },
+ "total_validity_days": {
+ "description": "Total validity period in days.",
+ "type": "integer"
+ },
+ "warnings": {
+ "description": "Non-fatal issues (near expiry, weak key, SHA-1).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+}