changedOutput schema / properties / results / items / properties / cert / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "chain_depth": {
- "description": "Number of certificates in the chain (1 = self-signed).",
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
- },
- "days_until_expiry": {
- "description": "Days remaining until certificate expiry. Negative = already expired.",
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
- },
- "issuer": {
- "description": "Issuer common name.",
- "type": "string"
- },
- "san": {
- "description": "Subject Alternative Names covered by this certificate.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "serial": {
- "description": "Certificate serial number.",
- "type": "string"
- },
- "subject": {
- "description": "Certificate subject CN.",
- "type": "string"
- },
- "valid_from": {
- "description": "ISO 8601 UTC timestamp of certificate validity start.",
- "type": "string"
- },
- "valid_until": {
- "description": "ISO 8601 UTC timestamp of certificate expiry.",
- "type": "string"
- }
- },
- "required": [
- "subject",
- "san",
- "issuer",
- "valid_from",
- "valid_until",
- "days_until_expiry",
- "chain_depth",
- "serial"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "authorization_error": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "OpenSSL chain-verification code when the certificate chain does not validate against the system trust store, or null when it validates. Common values: \"DEPTH_ZERO_SELF_SIGNED_CERT\" (self-signed leaf), \"SELF_SIGNED_CERT_IN_CHAIN\" / \"UNABLE_TO_VERIFY_LEAF_SIGNATURE\" (issuing root not trusted), \"CERT_HAS_EXPIRED\" (also reported in \"days_until_expiry\"). This is the authoritative chain-trust signal — the issuer and subject fields alone cannot detect an untrusted root."
+ },
+ "chain_depth": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Number of certificates the server sent, counting the leaf. Null when the runtime does not expose the issuer chain — read \"chain_depth_unavailable_reason\" in that case. Not a self-signed indicator: use \"authorization_error\" for that."
+ },
+ "chain_depth_unavailable_reason": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Why \"chain_depth\" is null, or null when a depth was measured. Absence of a depth is a runtime limitation, not a finding about the certificate."
+ },
+ "days_until_expiry": {
+ "description": "Days remaining until certificate expiry. Negative = already expired.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "hostname_verification_error": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Node's hostname-verification message when the requested domain is not covered by the certificate's CN or SANs (e.g. \"Hostname/IP does not match certificate's altnames: …\"), or null when the hostname is covered. A non-null value means ordinary clients reject this certificate for this hostname; compare against the \"san\" list to see what it does cover."
+ },
+ "issuer": {
+ "description": "Issuer common name.",
+ "type": "string"
+ },
+ "san": {
+ "description": "Subject Alternative Names covered by this certificate.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "serial": {
+ "description": "Certificate serial number.",
+ "type": "string"
+ },
+ "subject": {
+ "description": "Certificate subject CN.",
+ "type": "string"
+ },
+ "valid_from": {
+ "description": "ISO 8601 UTC timestamp of certificate validity start.",
+ "type": "string"
+ },
+ "valid_until": {
+ "description": "ISO 8601 UTC timestamp of certificate expiry.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "subject",
+ "san",
+ "issuer",
+ "valid_from",
+ "valid_until",
+ "days_until_expiry",
+ "chain_depth",
+ "chain_depth_unavailable_reason",
+ "hostname_verification_error",
+ "authorization_error",
+ "serial"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]