How to Test TLS Certificate Revocation Through a Proxy

A valid signature and trusted certificate chain do not prove that a certificate remains acceptable. A certificate authority may revoke a certificate before its scheduled expiry. Clients can learn that status from a stapled OCSP response, a direct OCSP query, a certificate revocation list or a platform-specific service.
Proxy routes complicate the evidence. An HTTP CONNECT proxy usually transports the destination TLS handshake without terminating it, while an HTTPS proxy presents its own certificate on the client-to-proxy hop. An approved inspection gateway may create another trust boundary. Browsers, command-line tools and operating systems can also apply different revocation policies.
This guide creates a safe acceptance test. Use only certificates, endpoints and proxy infrastructure you own or are explicitly authorized to test. Do not generate traffic against third-party revocation services at high volume.
Draw every TLS boundary
Document the route before testing:
| Path | Certificate being validated | Possible revocation source |
|---|---|---|
| client to HTTP proxy | normally none for a plain proxy hop | not applicable |
| client to HTTPS proxy | proxy gateway certificate | proxy certificate's stapled or referenced status |
| CONNECT tunnel to destination | destination certificate | destination stapling, OCSP, CRL or platform service |
| approved TLS inspection | inspection certificate plus upstream destination validation | organizational policy on both sides |
Never treat the proxy certificate and destination certificate as one chain. A successful TLS connection to an HTTPS proxy proves nothing about the certificate received after CONNECT.
Use the HTTPS proxy TLS audit to establish chain, hostname, SNI and trust boundaries before adding revocation cases.
Define the client policy
For every production client, record:
- runtime and version;
- trust store and certificate backend;
- whether revocation checking is enabled;
- whether OCSP stapling is required, optional or ignored;
- whether a failed responder lookup causes a soft or hard failure;
- CRL support and cache behavior;
- network path used for responder access;
- enterprise policy or browser management settings.
Do not assume that two clients using the same proxy behave identically. One may validate stapled status, another may fetch an OCSP responder, and another may apply only platform-level revocation data.
Build controlled certificate fixtures
Create authorized endpoints for these cases:
- valid certificate with a current good status;
- valid certificate with a valid stapled response;
- valid certificate without stapling;
- revoked test certificate;
- expired or stale status response;
- unreachable responder or CRL distribution point;
- invalid certificate chain as a separate negative control.
Use a private test CA or a provider-supported test environment. Do not weaken verification on production clients. A test that passes only after disabling certificate or hostname checks is a failed test.
Establish a direct baseline
From the same machine and runtime, test every fixture without the proxy under an explicitly approved control path. Capture:
client_version
certificate_fingerprint_hash
issuer_alias
stapled_status_present
stapled_status_age
revocation_policy
validation_result
error_category
dns_ms
connect_ms
tls_ms
total_ms
Do not store private keys, proxy credentials or raw customer hostnames. If the direct baseline does not produce the expected result, fix the fixture or client policy before evaluating a proxy.
Test the proxy and destination separately
For an HTTPS proxy, first validate the gateway certificate and its revocation behavior. Then establish CONNECT and validate the destination certificate inside the tunnel. Record which hop failed.
Run one route at a time with the same client, fixture and policy. Compare:
- certificate fingerprint and chain;
- presence and freshness of a stapled response;
- responder or CRL reachability;
- validation outcome and error category;
- TLS and total duration;
- whether a direct fallback occurred.
If the destination certificate changes unexpectedly through a route that should be a transparent tunnel, stop and investigate. Do not add a new trust anchor merely to make the test pass.
Test responder reachability without leaking traffic
When a client performs direct OCSP or CRL retrieval, determine whether that request follows the required proxy policy. A revocation lookup can become an unintended direct connection, disclose the destination certificate to another network path, or fail because the responder is not in the outbound allowlist.
Use controlled responder hostnames and low request volume. Verify DNS ownership, route, status code, cache behavior and timeout. If policy requires all egress through a proxy, apply the proxy bypass audit to the revocation lookup as well as the application request.
Do not block third-party responders to “test” failure. Use a laboratory responder, controlled DNS or an isolated test network.
Distinguish soft failure from hard failure
An unreachable responder is not the same as an explicit revoked status. Record both outcomes.
- Good: status evidence is current and acceptable.
- Revoked: the certificate must be rejected.
- Unknown: policy determines whether to stop or escalate.
- Responder unavailable: a network failure; client soft-fail or hard-fail policy must be documented.
- Stale evidence: reject or refresh according to the defined freshness rule.
Do not silently convert an explicit revoked result into a retry through another exit. Rotation does not change certificate status and may hide the original evidence.
Check caching and time boundaries
Revocation responses and CRLs have validity intervals. Repeat controlled tests before and after cache expiry. Record this-update and next-update timestamps as age or bounded metadata, not as an excuse to retain complete sensitive handshakes.
Test system-clock skew separately. A client with a wrong clock can reject current evidence or accept stale data. Fix time synchronization rather than broadening validation windows.
Set acceptance gates
A proxy route passes only when:
- proxy and destination TLS boundaries are separately attributable;
- a revoked test certificate is rejected;
- good current evidence succeeds;
- stale, unknown and unreachable cases match documented client policy;
- responder and CRL lookups follow approved egress rules;
- no unapproved direct fallback occurs;
- certificate verification and hostname checks remain enabled;
- result caching refreshes within the defined window;
- logs contain hashes and categories, not credentials or private keys.
Troubleshooting map
| Symptom | Investigate first |
|---|---|
| HTTPS proxy TLS fails before CONNECT | proxy certificate, trust store and proxy revocation path |
| CONNECT succeeds but destination TLS fails | destination chain, hostname, status and client policy |
| direct path succeeds, proxy path times out | responder routing, DNS, egress allowlist or tunnel latency |
| revoked fixture succeeds everywhere | client revocation policy or unsupported check |
| only browser rejects | browser or operating-system policy and cache |
| result changes after restart | cached OCSP, CRL or platform status data |
The curl IPv6 scope and retry guide helps separate address-selection and retry failures from certificate-revocation behavior.
FAQ
Does OCSP stapling remove all responder traffic?
Not universally. Client policy, missing or stale staples, intermediate certificates and platform behavior can still cause other checks. Measure the actual client.
Does HTTP CONNECT hide revocation status from the client?
Normally the destination TLS handshake remains end to end through the tunnel, so the client can evaluate provided status evidence. Approved TLS inspection creates a different boundary that must be tested explicitly.
Should an unreachable OCSP responder always fail closed?
That is a risk and platform policy decision. Document the intended behavior and distinguish network unavailability from an explicit revoked result. High-risk systems may require stricter policy.
Can changing the proxy exit fix a revoked certificate?
No. An explicit revoked status concerns the certificate. Rotating exits may change reachability but must never override or erase the revocation decision.
Compliance note
Test only systems and certificates you control or are authorized to assess. Respect CA, proxy and network policies. Protect certificate evidence, minimize retention and do not disable verification, intercept unauthorized traffic or use alternate routes to bypass security controls.
Related Recommendations
- How to Test TLS Session Resumption Across Proxy Pool Changes
- Proxy 429 Rate-Limit Handling: Respectful Recovery Without Wasting Requests
- How to set up an HTTP proxy server on iPhone or iPad
- How to Measure Proxy Exit Churn Before You Buy a Pool
- How to Test Residential Proxy ASN Targeting Before You Buy
- How to set up proxy IP in Edge Browser: Detailed Tutorial
- Proxy NAT64 and DNS64 Compatibility Test for IPv6-Only Networks
- How to Test a Proxy for DNS Leaks Before You Buy
- How to Validate Localized Prices Through Regional Proxies
- Proxy Gateway Certificate Expiry Runbook: Monitor, Rotate, and Verify Without Downtime