Private web application
Connect a self-hosted web application to Cloudflare so authorized users can access it from a browser without a VPN. This is useful when you need to give employees or contractors secure access to applications like company intranets, internal wikis, or admin panels.
To explore other access scenarios, refer to Secure private apps.
This guide follows the same steps as the Get Started experience in the Cloudflare One dashboard ↗.
Cloudflare Tunnel connects your private network to Cloudflare without opening any ports on your network. You install cloudflared, a connector service that runs in the background, on a device that can reach your application. It creates a secure connection from your network out to Cloudflare, so no firewall changes are required.
Cloudflare Access sits in front of the application and verifies who each user is before letting them through. Users sign in through a browser using an email one-time PIN or your identity provider.
- A Cloudflare account with a Zero Trust organization. If you have not set this up, refer to Get started.
- An active domain on your Cloudflare account. A public subdomain is created on this domain for your application.
- A Linux, Windows, or macOS device on your private network that can reach the application. This is where you install the tunnel.
- A running web application on your private network (for example,
http://10.10.1.25orhttp://grafana.local).
In this step, you describe the internal application you want to make available through Cloudflare.
- In Cloudflare One ↗, select the Get Started tab.
- For Securely access private web apps without an agent, select Get started.
- For Connect a private web application, select Continue.
- On the Connect and access private web applications screen, select Continue.
- Enter a name for your application (for example,
grafana-gcp). - Enter the hostname or IP address where the application is running. Use the IP address if you are not sure (for example,
10.10.1.25). - Select the protocol your application uses (HTTP or HTTPS).
- Enter the port your application listens on. This is usually part of the URL you use to access the application locally (for example, the
80inhttp://10.10.1.25:80). - Select Continue.
Your application needs a public URL so users can reach it from a browser. Cloudflare creates a public URL on one of your existing domains for the application.
- Select a domain from the dropdown.
- Enter a subdomain (for example,
grafana). A preview of the full URL appears (for example,grafana.example.com). - Select Continue.
An Access policy controls who can reach your application. In this step, you create a simple policy using email-based one-time PINs. Users you add here receive a one-time PIN by email when they try to access the application.
- Enter the email addresses of users you want to grant access to.
- Select Continue.
A tunnel connects your private network to Cloudflare so traffic can reach your application. You can select an existing tunnel or create a new one.
- In the Choose or create a Tunnel dropdown, select an existing tunnel or enter a name to create a new one.
- Select Continue.
Install cloudflared on a device in your private network that can reach the application. The dashboard generates commands specific to your operating system.
- Select your operating system from the dropdown.
- Copy and run the commands shown in the dashboard. For Windows, open Command Prompt as an administrator. For all other operating systems, use a terminal window.
- After the tunnel connects, select Continue.
The dashboard confirms that your application is available and protected behind Cloudflare Access.
-
Test your application:
- Select Test login on the success screen.
- On the Access login screen, enter one of the email addresses you added to your Access policy.
- Select Send me a code.
- Enter the code from your email and select Sign in.
-
Explore more with Zero Trust: Review your applications, policies, and tunnels in the Cloudflare One dashboard ↗.
-
Configure an identity provider: Replace email one-time PINs with your organization's identity provider for a seamless login experience. For more information, refer to Identity providers.
For in-depth guidance on clientless access, refer to the Clientless access learning path.
If you have issues connecting, refer to these resources:
- Troubleshoot tunnels: diagnose tunnel connectivity and routing problems.
- Troubleshooting: resolve common Zero Trust errors and issues.