CloudGuard WAF
  • Documentation Overview
  • What is CloudGuard WAF?
  • Getting started
    • Prepare key information
    • Log in to the Infinity Portal
    • Protect a Web Application / API
    • Deploy Enforcement Point
      • Gateway/Virtual Machine
        • AWS
          • Store Certificates in AWS
          • Store certificates on Gateway
        • Azure
          • Store Certificates in Azure
          • Store Certificates on Gateway
        • VMware
          • Store Certificates on Gateway
          • Configure networking in VMware Deployments
      • WAF as a Service
        • Certificates Managed by Check Point
        • Bring Your Own Certificate
      • Kubernetes Ingress
        • Kong Application Security
        • Istio Application Security
      • Docker
        • Single Docker
          • Deployment using 'docker' command
            • Store Certificates Locally on Docker
          • Deployment in Azure App Services
        • Dual Docker: NGINX/Kong/Envoy + Security Agent
      • Linux / NGINX / Kong
    • Monitor Events
  • Concepts
    • Gateways & Agents
    • Management & Automation
    • Security Practices
    • Contextual Machine Learning
  • Additional Security Engines
    • Anti-Bot
    • API Protection
      • API Discovery
      • Track API Discovery Learning
      • Enforce API Schema
    • File Security
    • Intrusion Prevention System (IPS)
    • Rate Limit
    • Snort Rules
  • SETUP INSTRUCTIONS
    • Setup Custom Rules and Exceptions
    • Setup Web User Response Pages
    • Setup Log Triggers
    • Setup Report Triggers
    • Setup Notification Triggers
    • Setup Behavior Upon Failure
    • Setup Agent Upgrade Schedule
  • HOW TO
    • Edit Web Application/API Settings
    • Edit Reverse Proxy Advanced Settings for a Web Asset
    • Protect an existing production site with CloudGuard WAF's Gateway
    • View Policy of all your Web Applications/APIs
    • Add Data Loss Prevention (DLP) rules
    • Configure Contextual Machine Learning for Best Accuracy
    • Track Agent Status
    • Track Learning and Move from Learn/Detect to Prevent
    • Rotate profile authentication token
    • Upgrade your Reverse Proxy when a Linux/NGINX agent is installed
    • Use Terraform to Manage CloudGuard WAF
    • Authorize Temporary Access for Check Point Support
    • Restrict Access to Backend Servers from CloudGuard WAF as a Service IPs Only
  • Troubleshooting
    • WAF Gateway / Virtual Machine
      • Azure
        • "Unable to find a tag containing the vault's name in the VMSS" Error
        • How To: Configure Key Vault for a Single Gateway
      • NGINX Error: Upstream Sent Too Big Header While Reading Response Header from Upstream
      • How To: Compare Between the Gateway's Certificate and the Upstream Certificate
    • Linux
      • SELinux: Checking Status and Disabling
    • WAF as a Service
      • Certificate Validation Failed: Adjusting CAA Record
      • How To: Redirect a Root Domain to a Subdomain Protected by WAF SaaS
      • How To: Extend Connection Timeout to Upstream
      • How To: Update Expired Certificates
  • references
    • Agent CLI
    • Management API
    • Event Query Language
    • Writing Snort Signatures
    • Events/Logs Schema
    • CVE-2022-3786 and CVE-2022-3602: OpenSSL X.509 Email Address Buffer Overflows (HIGH)
    • CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974: Ingress NGINX Controller RCE (Critical)
  • Resources
    • GitHub
    • Docker Hub
Powered by GitBook
On this page
  • Prerequisites
  • Configuration
  • How can I manage NGINX myself?
  • Configuration

Was this helpful?

  1. Getting started
  2. Deploy Enforcement Point
  3. Docker
  4. Single Docker

Deployment using 'docker' command

PreviousSingle DockerNextStore Certificates Locally on Docker

Last updated 5 months ago

Was this helpful?

Use this option to deploy a single docker image containing CloudGuard WAF with a managed reverse proxy.

It is possible to manage the reverse proxy server by yourself. Read the further in this document to see the changes in deployment instructions.

Prerequisites

  • Linux machine with:

    • Docker installed (or similar, compatible container runtime)

    • Root permissions

Configuration

Note - package file and folder names contain the name appsec - short for "Application Security" provided by CloudGuard WAF.

Step 1: Pull agent container image

As part of your CI, use the registry to pull the unified NGINX and Nano-Agent image or use the following command:

docker pull checkpoint/cloudguard-appsec-standalone

Step 2: Obtain the registration token

Make sure you obtain the <token> from the page, Authentication section. you will need it during agent deployment.

Step 3: Run the agent

Run the agent with this command after replacing <token> with the copied token from previous step and removing unneeded optional parameters:

docker run -d --name=agent-container [-v=<path to persistent location for agent config>:/etc/cp/conf] [-v=<path to persistent location for agent data files>:/etc/cp/data] [-v=<path to persistent location for agent debugs and logs>:/var/log/nano_agent] [-v=<path to persistent location for nginx server conf files>:/etc/nginx/conf.d/] [-v=/appsec/etc/certs:/etc/certs/] [-e https_proxy=<user:password@Proxy address:port>] [-p <host SSL port>:443] [-p <host http port>:80] [-p <host health-check port>:8117] -it checkpoint/cloudguard-appsec-standalone /cloudguard-appsec-standalone --token <token>

Unique Parameters explanation:

Parameter
Description
Required?

-v=/appsec/etc/certs:/etc/certs/

Yes for managed Reverse Proxy. If the web server uses only HTTP there is no need for this parameter. When managing Reverse Proxy by yourself, map the certificates according to your own deployment design.

-v=<path to persistent location for nginx server conf files>:/etc/nginx/conf.d/

Map persistent storage path for NGINX configuration files.

Yes when using the "unmanaged option". In this option the external persistent path is the means to locally manage the NGINX.

-v=<path to persistent location for agent config>:/etc/cp/conf -v=<path to persistent location for agent data files>:/etc/cp/data -v=<path to persistent location for agent debugs and logs>:/var/log/nano_agent

Map persistent storage path for agent files. Can be useful for debugging purposes if a container is no longer available.

No

-e https_proxy

Configure a proxy server for outbound traffic, if applicable.

No. Needed only in the specific case of outbound traffic through a proxy server.

-p <host health-check port>:8117

Expose an external port for health checks

Yes

-p <host http port>:80

Expose an external port for incoming HTTP traffic

Yes

-p <host SSL port:443]

Expose an external port for incoming HTTPS traffic

Yes If the web server uses only HTTP do not use this parameter.

For debugging purpose it is possible to activate an SSH server within the docker container by using the following parameters when running the docker. For security reasons, it is NOT recommended to use this option in production. --ssh-enable --ssh-user <username> --ssh-hash <hash>

The hash of you password can be calculated like this:

openssl passwd -6 -salt <user-salt> ClearTextPassword

  1. -6 indicates SHA-512

  2. <user-salt> is to randomize the encryption

Step 4: Deploy the container

Deploy the unified container.

To make sure that it is running, run: docker ps.

Step 5: Verify installation

Following the steps above, the agent will install and connect automatically.

Run the following command to check the status:

docker exec -it <CONTAINER_NAME> cpnano -s

CloudGuard AppSec web portal should also display a successful connection message:

Step 6: Certificates deployment (if the traffic is encrypted via HTTP)

How can I manage NGINX myself?

It is possible to have only security aspects managed centrally and manage nginx.conf and other config files by yourself.

Configuration

  • There is no need to add the upsteam URL for each Web application asset, because you will configure it yourself.

  • When creating a new Docker profile, make sure to select the option "I want to manage NGINX myself not via this management"

Running the agent (Step 3)

Run the agent with this command after replacing <token> with the copied token from previous step and removing unneeded optional parameters:

docker run -d --name=agent-container [-v=<path to persistent location for agent config>:/etc/cp/conf] [-v=<path to persistent location for agent data files>:/etc/cp/data] [-v=<path to persistent location for agent debugs and logs>:/var/log/nano_agent] -v=<path to persistent location for nginx server conf files>:/etc/nginx/conf.d/ [-e https_proxy=<user:password@Proxy address:port>] -it checkpoint/cloudguard-appsec-standalone /cloudguard-appsec-standalone --token <token> --nginx-self-managed

Note the addition of the --nginx-self-managed parameter in the end of the command.

Similar to managed Reverse proxy installation, almost all "-v" parameters and the –e https_proxy parameter are optional, except for the path to persistent location for nginx server conf files.

For more info on each parameter see table above.

Certificate management (Step 6)

Map persistent storage path for certificates to /etc/certs of the container. Note: We recommend using /appsec/etc/certs and refer to it in our .

To configure SSL certificates follow this guide for .

Store Certificates Locally on Docker
NGINX
documentation for storing certificates
checkpoint/cloudguard-appsec-standalone
Enforcement Profile
instructions