You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The command will output a certificate in PEM format and its private key. Store these files in a secure place.
64
+
The command will output a certificate in PEM format and its private key. Store these files in a secure place.
65
65
66
-
:::note
66
+
:::note
67
67
68
-
The WARP client requires certificates to include `CN` and `subjectAltName` metadata. You can use `example.com` or any other domain.
69
-
:::
68
+
The WARP client requires certificates to include `CN` and `subjectAltName` metadata. You can use `example.com` or any other domain.
69
+
:::
70
70
71
-
2.Next, configure an HTTPS server on your network to use this certificate and key. The examples below demonstrate how to run a barebones HTTPS server that responds to requests with a `200` status code:
71
+
2.Configure an HTTPS server on your network to use this certificate and key. The example below demonstrates how to serve the TLS certificate from an nginx container in Docker:
72
72
73
-
<Detailsheader="nginx in Docker">
73
+
a. Create an nginx configuration file called `nginx.conf`:
74
74
75
-
To serve the TLS certificate from an nginx container in Docker:
75
+
```txt
76
+
events {
77
+
worker_connections 1024;
78
+
}
76
79
77
-
1. Create an nginx configuration file called `nginx.conf`:
80
+
http {
81
+
server {
82
+
listen 443 ssl;
83
+
ssl_certificate /certs/example.pem;
84
+
ssl_certificate_key /certs/example.key;
85
+
location / {
86
+
return 200;
87
+
}
88
+
}
89
+
}
90
+
```
78
91
79
-
```txt
80
-
events {
81
-
worker_connections 1024;
82
-
}
92
+
If needed, replace `/certs/example.pem` and `/certs/example.key` with the locations of your certificate and key.
83
93
84
-
http {
85
-
server {
86
-
listen 443 ssl;
87
-
ssl_certificate /certs/example.pem;
88
-
ssl_certificate_key /certs/example.key;
89
-
location / {
90
-
return 200;
91
-
}
92
-
}
93
-
}
94
-
```
94
+
b. Add the nginx image to your Docker compose file:
95
95
96
-
If needed, replace `/certs/example.pem` and `/certs/example.key` with the locations of your certificate and key.
96
+
```yml
97
+
version: "3.3"
98
+
services:
99
+
nginx:
100
+
image: nginx:latest
101
+
ports:
102
+
- 3333:443
103
+
volumes:
104
+
- ./nginx.conf:/etc/nginx/nginx.conf:ro
105
+
- ./certs:/certs:ro
106
+
```
97
107
98
-
2. Add the nginx image to your Docker compose file:
108
+
If needed, replace `./nginx.conf` and `./certs` with the locations of your nginx configuration file and certificate.
99
109
100
-
```yml
101
-
version: "3.3"
102
-
services:
103
-
nginx:
104
-
image: nginx:latest
105
-
ports:
106
-
- 3333:443
107
-
volumes:
108
-
- ./nginx.conf:/etc/nginx/nginx.conf:ro
109
-
- ./certs:/certs:ro
110
-
```
110
+
c. Start the server:
111
111
112
-
If needed, replace `./nginx.conf` and `./certs` with the locations of your nginx configuration file and certificate.
112
+
```sh
113
+
docker-compose up -d
114
+
```
113
115
114
-
3. Start the server:
116
+
3.To test that the TLS server is working, run a curl command from the end user's device:
You need to pass the `--insecure` option because we are using a self-signed certificate. If the device is connected to the network, the request should return a `200` status code.
121
123
122
-
<Details header="Python">
124
+
<Detailsheader="Windows IIS">
123
125
124
-
:::caution
126
+
To create a TLS endpoint using Windows Internet Information Services (IIS) Manager:
125
127
126
-
This Python script is intended for a quick proof of concept (PoC) and should not be used in production environments.
You will need the SHA-256 fingerprint to [configure the managed network in Zero Trust](#3-add-managed-network-to-zero-trust). Do not use the default SHA-1 thumbprint generated by the `New-SelfSignedCertificate` command.
158
155
159
-
3. To test that the server is working, run a curl command from the end user's device:
5. In the **Connections** pane, right-click the **Sites** node and select **Add Website**.
159
+
160
+
6. In **Site name**, enter any name for the TLS server (for example, `Managed Network Server`).
164
161
165
-
You need to pass the `insecure` option because we are using a self-signed certificate. If the device is connected to the network, the request should return a `200` status code.
162
+
7. In **Physical path**, enter any directory that contains a `.htm` or `html` file, such as `C:\inetpub\wwwroot`. Cloudflare does not validate the content within the directory.
163
+
164
+
8. Under **Binding**, configure the following fields:
165
+
-**Type**: _https_
166
+
-**IP address**: _All Unassigned_
167
+
-**Port**: `443`
168
+
-**Host name**: Enter the certificate's Common Name (CN). The CN of our example certificate is `office-name.example.internal`.
169
+
-**Require Server Name Indication**: Enabled
170
+
-**SSL certificate**: Select the name of your TLS certificate. Our example certificate is called `Cloudflare Managed Network Certificate`.
171
+
172
+
9. To test that the TLS server is working, run a curl command from the end user's device:
You need to pass the `--insecure` option because we are using a self-signed certificate. The `--resolve` option allows you to connect to the server's private IP but also pass the hostname to the server for SNI and certificate validation. If the device is connected to the network, the request should return your directory's default homepage (`C:\inetpub\wwwroot\iisstart.htm`).
179
+
</Details>
166
180
167
181
### Supported cipher suites
168
182
169
183
The WARP client establishes a TLS connection using [Rustls](https://github.com/rustls/rustls). Make sure your TLS endpoint accepts one of the [cipher suites supported by Rustls](https://docs.rs/rustls/0.21.10/src/rustls/suites.rs.html#125-143).
170
184
171
185
## 2. Extract the SHA-256 fingerprint
172
186
173
-
<Tabs> <TabItem label="local certificate">
187
+
The SHA-256 fingerprint is only required if your TLS endpoint uses a self-signed certificate.
188
+
189
+
<Tabs> <TabItemlabel="Local certificate">
174
190
175
191
To obtain the SHA-256 fingerprint of a local certificate:
176
192
@@ -184,7 +200,7 @@ The output will look something like:
0 commit comments