Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (2025)

Zscaler Blog

Get the latest Zscaler blog updates in your inbox

Subscribe

Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (7)

SATISH MADIRAJU-Sr. Director, Product Management

September 20, 2024

-

6 min read

Build and Run Secure Cloud AppsZero Trust

Contents

  1. Introduction
  2. How development teams can utilize the correct certificate store
  3. How trusted SSL inspection via proxy works
  4. Why SSL inspection is challenging in developer environments
  5. Key components of a developer-friendly enterprise SSL solution
  6. Building a custom CA-bundle for TLS/SSL inspection
  7. Conclusion
  8. More blogs

In today's digital landscape, SSL/TLS inspection is crucial for maintaining robust security. Having said that, implementing SSL inspection in developer environments can be a challenge. This is because developers often use a variety of tools and applications that may not trust the default system certificate store or perform certificate pinning, leading to unexpected errors. Dev teams must overcome this hurdle and find a way to implement SSL/TLS inspection in order to defend against advanced threats and ensure secure communications.

How development teams can utilize the correct certificate store

Developers have options when it comes to integrating their tools with the correct certificate store, a key requirement for enabling encrypted traffic inspection with various development tools:

  1. Create an SSL Inspection policy in Zscaler Internet Accessthat uses the Cloud Applications category to bypass the traffic associated with developer tools. Customers can still inspect other traffic developers generate.
  2. Inspect traffic by integrating development tools with the appropriate certificate storeas per the examples provided in this blog. Zscaler empowers developers with integrations with20+ tools, components and programming languages beyond those covered in this blog including Rust, Ruby, Microsoft Azure CLI and others.
  3. Automate using the correct certificate store so developers can focus on higher-value work: in the future Zscaler will enable customers’ dev teams to utilize the correct certificate store automatically so that software engineers can focus on keeping their development pipelines moving rapidly.

How trusted SSL inspection via proxy works

Before examining developer challenges with encrypted traffic inspection, let’s look at the mechanics of the SSL inspection process.

Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (8)

  • The Zscaler Enforcement Node (ZEN in the diagram above) proxies the TLS connection by assuming both the role of a TLS server to the TLS client (the end user application) and of a TLS client facing the destination TLS server.
  • The Zscaler service completes a server-side SSL handshake with the server, agreeing on a symmetric session key used to encrypt/decrypt the traffic on the server-side and validating the server’s certificate, similar to what an end user’s browser would do.
  • Further, the service generates a domain certificate that’s similar to the original certificate, but signed using the Zscaler intermediate CA or a customer intermediate CA private key.
  • The service then sends the certificate to the client for validation with the goal of completing a client-side handshake and agreeing on a different symmetric session key used to encrypt/decrypt the traffic from the client side. At this point (step 6 in the figure above), certificate verification stops working. This prevents a trusted MITM proxy like Zscaler from intercepting, decrypting traffic before re-encrypting the session and sending it to its destination.

Why SSL inspection is challenging in developer environments

SSL inspection involves decrypting, inspecting, and re-encrypting TLS/SSL traffic. This process can be problematic in developer environments because of:

  • Non-standard certificate stores: Many development tools and apps do not use the default system certificate store or do not trust Zscaler's certificates. This leads to trust issues with TLS/SSL certificates that, in turn, cause unexpected errors or behaviors that otherwise would not appear.
  • Diverse tool sets with divergent certificate handling methods:Developers use a wide range of tools and libraries, each with their own methods of handling TLS/SSL certificates. Some applications use their own application trust store instead of using the default system store. In these instances, the application is unable to validate the TLS interception certificate.

Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (9)

Key components of a developer-friendly enterprise SSL solution

In this blog we’ll review a few examples of how Zscaler can integrate with various developer tools to active encrypted traffic inspection. Our newSoftware Developer Solution Guide to TLS and Certificate Integration provides multiple solutions to overcome these certificate challenges, enabling effective SSL/TLS inspection in developer environments. Zscaler offers three methods to address certificate challenges and enable SSL/TLS inspection:

  1. SSL Inspection Policies: Zscaler allows administrators to create specific SSL inspection policies to bypass certain domains or inspect traffic based on URL categories.
  2. Intermediate CA Certificates: Zscaler can dynamically generate and issue certificates on behalf of the server, which are then trusted by the client endpoint.
  3. Custom Certificate Bundles:Developers can create custom certificate bundles that include the Zscaler root certificate, ensuring that their tools and applications trust the intercepted traffic.

Building a custom CA-bundle for TLS/SSL inspection

To enable SSL/TLS inspection for various development tools, you need to build a custom CA-bundle that includes the Zscaler root certificate. Here is a step-by-step guide for configuring SSL/TLS inspection for Docker, Git, NPM, Oracle Java, Python, Python PIP/Conda, and the Python urlib3 and requests libraries. These are just a few of the developer tools Zscaler can help customersoperationalize the inspection of encrypted traffic in developer environments.

1. Docker

Docker uses the system's CA certificates by default. To add the Zscaler root certificate, follow these steps:

  • Export the Zscaler root certificate from your system's certificate store.
  • Copy the certificate to the Docker certificate directory (e.g.,/etc/docker/certs.d on Linux).
  • Restart the Docker daemon to apply the changes.

2. Git

To configure Git to trust the Zscaler root certificate, follow these steps:

  • Export the Zscaler root certificate and save it aszscaler.crt.
  • Configure Git to use the custom certificate bundle:
gitconfig--globalhttp.sslCAInfo/path/to/zscaler.crt

3. NPM

NPM can be configured to use a custom CA bundle by setting thecafile configuration option:

  • Export the Zscaler root certificate and save it aszscaler.crt.
  • Configure NPM to use the custom certificate bundle:
npmconfigsetcafile/path/to/zscaler.crt

4. Oracle Java

Oracle Java uses its own certificate store, typically located in thecacerts file. To add the Zscaler root certificate:

  • Export the Zscaler root certificate and save it aszscaler.crt.
  • Use thekeytool command to import the certificate:
keytool-importcert-file/path/to/zscaler.crt-aliaszscaler-keystore$JAVA_HOME/lib/security/cacerts-storepasschangeit

5. Python

Python'surllib3 andrequests libraries, as well as PIP/Conda, can be configured to use a custom CA bundle:

  • Export the Zscaler root certificate and save it aszscaler.crt.
  • Forurllib3, configure thePoolManager to use the custom CA bundle:
importcertifiimporturllib3http=urllib3.PoolManager(cert_reqs='CERT_REQUIRED',ca_certs='/path/to/zscaler.crt')
  • Forrequests, specify the custom CA bundle when making requests:
importrequestsresponse=requests.get('https://example.com',verify='/path/to/zscaler.crt')
  • For PIP, use the--cert option or set thePIP_CERT environment variable:

pipinstall--cert/path/to/zscaler.crtsomepackageexportPIP_CERT=/path/to/zscaler.crt

By following these steps, you can ensure that your developer team’s tools and applications trust the Zscaler root certificate, enabling effective TLS/SSL inspection and enhancing your security posture.

Conclusion

Implementing SSL inspection in developer environments can be challenging due to non-standard certificate stores, certificate pinning, and diverse toolsets, but Zscaler provides multiple solutions to overcome these challenges. We can help you build a custom CA-bundle and configure your development tools to trust the Zscaler root certificate, so you can enable TLS/SSL inspection and ensure secure communications in your developer environment.

This blog just scratches the surface of how developers can achieve full inspection of encrypted traffic with Zscaler. Customers can get a free copy of theSoftware Developer Solution Guide to TLS and Certificate Integration now in the ZscalerCustomer Success Center.

Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (10)

Thank you for reading

Was this post useful?

Explore more Zscaler blogs

Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (13)

4 Ways Enterprises Can Stop Encrypted Cyber Threats

Read post

Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (14)

The Role of Security in DevOps Architecture

Read post

Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (15)

How to Enforce Least-Privileged Cloud Permissions and Stay Friends with Your DevOps Team

Read post

Get the latest Zscaler blog updates in your inbox

Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (16)

By submitting the form, you are agreeing to our privacy policy.


Setting Up SSL Inspection in Developer Environments to Defend Against Advanced Threats (2025)

FAQs

How to do an SSL inspection? ›

How Does SSL Inspection Work? SSL inspection works by placing an interception proxy between the client endpoint and the server endpoint, which will decrypt and inspect the traffic. As we've established, SSL inspection is normally done by placing a piece of hardware or software between the client and the server.

Which of the following options are the best practices while enabling SSL inspection? ›

Deploying SSL Inspection
  • Review Best Practices for SSL Inspection. Before deploying SSL inspection for your organization, consider the following best practices: ...
  • Choose the CA and Configure the Appropriate Root Certificate.
  • Install the Certificate to an Application-Specific Trusted Store.
  • Configure the SSL Inspection Policy.

What is Zscaler's current recommendation for SSL inspection? ›

Zscaler recommends inspecting as much traffic as possible, but 100% traffic inspection is typically not feasible due to legal liability, regulatory concerns, Sarbanes-Oxley Act (SOX), personal identifying information (PII), and other issues.

What is SSL server inspection? ›

SSL inspection is the process of intercepting and reviewing SSL-encrypted internet communication between the client and the server. The inspection of SSL traffic has become critically important as the vast majority of internet traffic is SSL encrypted, including malicious content.

What is SSL TLS inspection rules? ›

SSL/TLS inspection involves performing a MitM-style interception on SSL/TLS connections entering or leaving an organization's network. This enables the organization to inspect the traffic for malicious content.

How do I enable SSL client inspection? ›

Enabling SSL Client Inspection
  1. Navigate to POLICY | DPI-SSL > Client SSL.
  2. Click General.
  3. Select Enable SSL Client Inspection. ...
  4. Select one or more services with which to perform inspection; none are selected by default:

Is SSL inspection a good idea? ›

Overall, SSL inspection offers a great way to ensure that the SSL traffic coming into your device (or the data that you send to a website or web server) is free of malicious content. SSL inspection ensures your encrypted traffic isn't used as a gateway for cyberattacks.

What are the categories of SSL inspection? ›

These categories have been divided into three classes: those for which SSL inspection will not be performed; those where the traffic is blocked; and those where traffic is allowed but the site does not fall into a known safe site in which case SSL inspection will be performed.

What is the SSL inbound inspection process? ›

Inbound SSL/TLS decryption provides visibility into the traffic, allowing the firewall to respond to the threat proactively. SSL Inbound Inspection works similarly to SSL Forward Proxy, except that the firewall decrypts inbound traffic to internal servers instead of decrypting outbound traffic from internal clients.

Which is recommended SSL protocol? ›

TLS 1.3 is the latest version of the TLS protocol. TLS, which is used by HTTPS and other network protocols for encryption, is the modern version of SSL. TLS 1.3 dropped support for older, less secure cryptographic features, and it sped up TLS handshakes, among other improvements.

Do most organizations around the world inspect 100% of all SSL/TLS encrypted traffic? ›

Despite increased encryption usage, many organizations still inspect only some of their SSL/TLS traffic, allowing traffic from content delivery networks (CDNs) and certain “trusted” sites to go uninspected. This can be risky because: Webpages can change easily.

How do I stop SSL inspection? ›

In your policy under ssl/ssh inspection, select profile certificate inspection it will disable the "man in the middle" ssl inspection and only inspect the certificate and it will stop your ssl error in the web browser.

How do I check my SSL inspection? ›

Verify TLS (or SSL) inspection is working

Go to a site where TLS inspection is applied by your web filter. Verify the building icon is in the address bar. Click it to see details about permissions and the connection. (Optional) To see details about the certificate, click Certificate information.

What is SSL security check? ›

Secure Sockets Layer (SSL) is a standard security technology for establishing an encrypted link between a server and a client—typically a web server (website) and a browser, or a mail server and a mail client (e.g., Outlook).

What is SSL protection? ›

SSL: Secure Sockets Layer

SSL is standard technology for securing an internet connection by encrypting data sent between a website and a browser (or between two servers). It prevents hackers from seeing or stealing any information transferred, including personal or financial data.

How do I inspect an SSL certificate? ›

How do I view an SSL certificate in Chrome or Firefox?
  1. Select the padlock icon located in the address bar of the website.
  2. In the pop-up window, choose "Certificate (Valid)."
  3. Review the "Valid from" dates to ensure the SSL certificate is up-to-date.

How do I run an SSL test? ›

To check an SSL certificate on any website, all you need to do is follow two simple steps.
  1. First, check if the URL of the website begins with HTTPS, where S indicates it has an SSL certificate.
  2. Second, click on the padlock icon on the address bar to check all the detailed information related to the certificate.

What is an SSL assessment? ›

SSL online test helps to screen the candidates who possess traits as follows: Strong knowledge of SSL terminologies. Knowledge of SSL networking concepts and understanding of encryption algorithms. Knowledge of SSL certificates.

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Delena Feil

Last Updated:

Views: 5795

Rating: 4.4 / 5 (45 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Delena Feil

Birthday: 1998-08-29

Address: 747 Lubowitz Run, Sidmouth, HI 90646-5543

Phone: +99513241752844

Job: Design Supervisor

Hobby: Digital arts, Lacemaking, Air sports, Running, Scouting, Shooting, Puzzles

Introduction: My name is Delena Feil, I am a clean, splendid, calm, fancy, jolly, bright, faithful person who loves writing and wants to share my knowledge and understanding with you.