Skip to content
This repository was archived by the owner on Nov 24, 2025. It is now read-only.
This repository was archived by the owner on Nov 24, 2025. It is now read-only.

TO API - DeliveryServices AddSSLKeys Incorrectly stores X509 certificate missing Subject/Authority Key as zero length string. #3181

@ghost

Description

Method: POST
Endpoint: api/1.4/deliveryservices/sslkeys/add
Description: Importing X509 SSL certificate and corresponding intermediate/root X509 certificates that do not contain X509v3 Subject Key Identifier (SKI) and corresponding Authority Key Identifier (AKI) results in the certificate being stored in Traffic Vault as a zero length string. Further, all intermediate CA certificates that follow are ignored for X509 certificate validation. Additionally, the RSA key and certificate-request (csr) do get stored correctly in traffic vault, but the certificate ('crt' field in json) is a zero length string. The response code for this import operation is incorrectly sent back to the client as a 200 indicating a successful import.

Impact: Traffic Router Languid SSL connector is impacted (partially and fully) upon receiving incomplete/invalid SSL Key/Certificate data from Traffic Ops SSLKeysAPIs. This presents a problem in that the incomplete/invalid SSL key/cert pair causes TrafficRouter to throw an exception related to an invalid X509 certificate. After exception has occurred, any new TLS handshake attempts hang and eventually timeout, thus a HTTPS services have been partially or fully impacted.

Possible Solution: All X509 certificates that do not contain Subject/Authority Key Identifier X509v3 should be rejected with proper 4XX HTTP code and corresponding JSON error description. Traffic Router should also be updated to handle invalid certificate data received from Traffic Ops without partial/full impact to SSL Languid connector.

Metadata

Metadata

Assignees

No one assigned

    Labels

    SSLsupport for/problems with SSL featuresTraffic Opsrelated to Traffic Opsbugsomething isn't working as intended

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions