Forward Deployed Engineering Tutorial · Deploying in Customer Environments · Lesson 16 of 24
Networks, Proxies and Firewalls
Make software work behind corporate proxies, TLS inspection, egress allow-lists and private connectivity.
What you'll meet inside enterprises
- Outbound proxies: traffic to the internet must go through
HTTPS_PROXY. - TLS inspection: the proxy re-signs HTTPS traffic with the company's own CA; clients must trust that CA, or every call fails with certificate errors.
- Egress allow-lists: only approved domains or IPs are reachable; you must provide yours (and keep them stable).
- Private connectivity: PrivateLink, VPN or peering instead of the public internet.
ALLOW_LIST = {"api.vendor.example", "auth.vendor.example"}
TRUSTED_CAS = {"PublicRootCA"}
def call(host, presented_ca, extra_cas=()):
if host not in ALLOW_LIST:
return f"{host}: blocked by egress allow-list"
if presented_ca not in TRUSTED_CAS | set(extra_cas):
return f"{host}: certificate verify failed (issuer {presented_ca})"
return f"{host}: ok"
print(call("api.vendor.example", "CorpProxyCA")) # TLS inspection
print(call("api.vendor.example", "CorpProxyCA", extra_cas=["CorpProxyCA"])) # configure the CA bundle
print(call("telemetry.vendor.example", "PublicRootCA")) # not on the allow-list
Output
api.vendor.example: certificate verify failed (issuer CorpProxyCA) api.vendor.example: ok telemetry.vendor.example: blocked by egress allow-list
Making clients configurable
Support standard proxy variables (HTTPS_PROXY, NO_PROXY), a configurable CA bundle (REQUESTS_CA_BUNDLE,
NODE_EXTRA_CA_CERTS, Java truststores), and list every domain and port your software needs in the install
guide. Never "fix" certificate errors by disabling verification.
See the Networking tutorial for DNS, TLS and cloud networking basics.
Test yourself
Inside a customer network every HTTPS call fails with 'certificate verify failed'. Most likely cause?
A TLS-inspecting proxy whose CA your client doesn't trustThe API is downWrong OAuth scopeDNS TTL too long
Show answer
Answer: A TLS-inspecting proxy whose CA your client doesn't trust
Configure the customer's CA bundle; never disable verification.