Skip to content

Commit 4b45064

Browse files
authored
Merge pull request ghostunnel#710 from ghostunnel/cs/fixup
Various corrections for docs pages and regenerate man pages
2 parents 837dfa8 + f336781 commit 4b45064

10 files changed

Lines changed: 45 additions & 32 deletions

README.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -306,11 +306,10 @@ successful, the reloaded certificate will be used for new connections going
306306
forward.
307307

308308
Additionally, Ghostunnel uses `SO_REUSEPORT` to bind the listening socket on
309-
platforms where it is supported (Linux, Apple macOS, FreeBSD, NetBSD, OpenBSD
310-
and DragonflyBSD). This means a new Ghostunnel can be started on the same
311-
host/port before the old one is terminated, to minimize dropped connections (or
312-
avoid them entirely depending on how the OS implements the `SO_REUSEPORT`
313-
feature).
309+
platforms where it is supported (Linux, Apple macOS, FreeBSD, NetBSD and
310+
OpenBSD). This means a new Ghostunnel can be started on the same host/port
311+
before the old one is terminated, to minimize dropped connections (or avoid
312+
them entirely depending on how the OS implements the `SO_REUSEPORT` feature).
314313

315314
Note that if you are using an HSM/PKCS#11 module, only the certificate will
316315
be reloaded. It is assumed that the private key in the HSM remains the same.

docs/ACME.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ ghostunnel server \
2929
Ghostunnel defaults to using [Let's Encrypt][letsencrypt] as the ACME CA. You
3030
can specify a different ACME CA URL using `--auto-acme-ca`. To test against a
3131
non-production CA (e.g. Let's Encrypt's staging environment), use
32-
`--auto-acme-testca`. When set, the `--auto-acme-ca` flag is ignored.
32+
`--auto-acme-testca=URL` with the staging CA's directory URL (e.g.
33+
`--auto-acme-testca=https://acme-staging-v02.api.letsencrypt.org/directory`).
34+
When set, the `--auto-acme-ca` flag is ignored.
3335

3436
## Requirements
3537

docs/DOCKER.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ variants are available:
99

1010
| Variant | Tag | Base |
1111
|---------|-----|------|
12-
| Alpine | `ghostunnel/ghostunnel:latest`, `ghostunnel/ghostunnel:v1.x.x` | Alpine Linux |
13-
| Debian | `ghostunnel/ghostunnel:latest-debian`, `ghostunnel/ghostunnel:v1.x.x-debian` | Debian slim |
14-
| Distroless | `ghostunnel/ghostunnel:latest-distroless`, `ghostunnel/ghostunnel:v1.x.x-distroless` | Google Distroless |
12+
| Alpine | `ghostunnel/ghostunnel:latest-alpine`, `ghostunnel/ghostunnel:v1.x.x-alpine` | Alpine Linux |
13+
| Debian | `ghostunnel/ghostunnel:latest-debian`, `ghostunnel/ghostunnel:v1.x.x-debian` | Debian Slim |
14+
| Distroless | `ghostunnel/ghostunnel:latest-distroless`, `ghostunnel/ghostunnel:v1.x.x-distroless` | Distroless (`gcr.io/distroless/base-nossl:nonroot`) |
1515

1616
The `latest` tags always point to the most recent release.
1717

docs/GRACEFUL-SHUTDOWN.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ When a shutdown is triggered, the following happens in order:
5454
that the process is shutting down.
5555
2. **Status HTTP server begins shutting down**: best-effort graceful shutdown
5656
of the internal status listener.
57-
3. **Listener closes**: Ghostunnel stops accepting new connections.
58-
4. **In-flight connections continue**: existing connections are not
59-
interrupted. Data continues to flow until both sides close normally.
60-
5. **Force-exit timer starts**: a timer begins counting down from the
57+
3. **Force-exit timer starts**: a timer begins counting down from the
6158
`--shutdown-timeout` value (default: 5 minutes).
59+
4. **Listener closes**: Ghostunnel stops accepting new connections.
60+
5. **In-flight connections continue**: existing connections are not
61+
interrupted. Data continues to flow until both sides close normally.
6262
6. **Process exits** when either:
6363
- All in-flight connections have drained (exit code 0), or
6464
- The shutdown timeout fires (exit code 1).
@@ -88,7 +88,7 @@ workload when tuning this value:
8888
`terminationGracePeriodSeconds`) to avoid the orchestrator killing the
8989
process before Ghostunnel's own timeout fires.
9090

91-
Other flags like `--connect-timeout` and `--conn-max-lifetime` also influence
91+
Other flags like `--connect-timeout` and `--max-conn-lifetime` also influence
9292
connection behavior and may be relevant when tuning shutdown. See
9393
[Command-Line Flags]({{< ref "FLAGS.md" >}}) for the full list.
9494

docs/KEYCHAIN.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ ghostunnel server \
8080
--allow-ou=client
8181
```
8282

83-
This flag is only available on macOS and has no effect on Windows.
83+
This flag is only available on macOS.
8484

8585
See Apple's [Protecting keys with the Secure Enclave][apple-secure-enclave]
8686
and the [Secure Enclave security overview][apple-se-overview] for more on
@@ -174,7 +174,8 @@ ghostunnel client \
174174
### Windows
175175

176176
On Windows, `--keychain-identity` and `--keychain-issuer` work the same way
177-
but search the Windows Certificate Store (the "MY" store for the current user):
177+
but search the Windows Certificate Store (MY, CURRENT_SERVICE, and
178+
LOCAL_MACHINE stores, as described [above](#importing-into-the-certificate-store)):
178179

179180
```bash
180181
ghostunnel client \
@@ -186,8 +187,8 @@ ghostunnel client \
186187

187188
## Certificate Reloading
188189

189-
Keychain certificates support reloading via `SIGHUP`/`SIGUSR1` or
190-
`--timed-reload`. On reload, Ghostunnel re-queries the keychain for a
190+
Keychain certificates support reloading via `SIGHUP`/`SIGUSR1` (Unix only) or
191+
`--timed-reload` (all platforms). On reload, Ghostunnel re-queries the keychain for a
191192
certificate matching the same identity/issuer criteria. If the certificate
192193
has been updated in the keychain (e.g. renewed), the new certificate will
193194
be used for subsequent connections.

docs/MANPAGE-darwin.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ PKCS12 keystore).
201201

202202
**--key=PATH** Path to certificate private key (PEM with private key).
203203

204-
**--storepass=PASS** Password for keystore (if using PKCS keystore,
204+
**--storepass=PASS** Password for keystore (if using PKCS12 keystore,
205205
optional).
206206

207207
**--cacert=CACERT** Path to CA bundle file (PEM/X509). Uses system trust
@@ -297,8 +297,13 @@ unix:PATH).
297297
**--target-status=""** Address to target for status checking downstream
298298
healthchecks. Defaults to a TCP healthcheck if this flag is not passed.
299299

300-
**--proxy-protocol** Enable PROXY protocol v2 to signal connection info
301-
to backend
300+
**--proxy-protocol** Enable PROXY protocol v2 (connection info only,
301+
equivalent to --proxy-protocol-mode=conn).
302+
303+
**--proxy-protocol-mode=PROXY-PROTOCOL-MODE** PROXY protocol v2 mode:
304+
conn (connection info only), tls (add TLS version/ALPN/SNI metadata),
305+
tls-full (add TLS metadata and client certificate). Mutually exclusive
306+
with --proxy-protocol.
302307

303308
**--unsafe-target** If set, does not limit target to localhost,
304309
127.0.0.1, \[::1\], or UNIX sockets.

docs/MANPAGE-linux.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ PKCS12 keystore).
201201

202202
**--key=PATH** Path to certificate private key (PEM with private key).
203203

204-
**--storepass=PASS** Password for keystore (if using PKCS keystore,
204+
**--storepass=PASS** Password for keystore (if using PKCS12 keystore,
205205
optional).
206206

207207
**--cacert=CACERT** Path to CA bundle file (PEM/X509). Uses system trust
@@ -290,8 +290,13 @@ unix:PATH).
290290
**--target-status=""** Address to target for status checking downstream
291291
healthchecks. Defaults to a TCP healthcheck if this flag is not passed.
292292

293-
**--proxy-protocol** Enable PROXY protocol v2 to signal connection info
294-
to backend
293+
**--proxy-protocol** Enable PROXY protocol v2 (connection info only,
294+
equivalent to --proxy-protocol-mode=conn).
295+
296+
**--proxy-protocol-mode=PROXY-PROTOCOL-MODE** PROXY protocol v2 mode:
297+
conn (connection info only), tls (add TLS version/ALPN/SNI metadata),
298+
tls-full (add TLS metadata and client certificate). Mutually exclusive
299+
with --proxy-protocol.
295300

296301
**--unsafe-target** If set, does not limit target to localhost,
297302
127.0.0.1, \[::1\], or UNIX sockets.
@@ -397,4 +402,4 @@ connections could drain.
397402

398403
Website: *https://ghostunnel.dev*
399404

400-
Project on GitHub: *https://github.com/ghostunnel/ghostunnel*
405+
Project on GitHub: *https://github.com/ghostunnel/ghostunnel*

docs/METRICS.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,11 @@ flag, see
7777

7878
## Backend Healthchecks
7979

80-
The `/_status` endpoint includes a backend healthcheck. By default, Ghostunnel
81-
performs a TCP connection check against the `--target` address. You can override
82-
this with `--target-status=URL` to perform an HTTP GET against the given URL
83-
instead. Ghostunnel expects an HTTP 200 response.
80+
The `/_status` endpoint includes a backend healthcheck (server mode only). By
81+
default, Ghostunnel performs a TCP connection check against the `--target`
82+
address. You can override this with `--target-status=URL` (must use `http://`
83+
or `https://` scheme) to perform an HTTP GET against the given URL instead.
84+
Ghostunnel expects an HTTP 200 response.
8485

8586
The `/_status` JSON response includes:
8687

docs/PROXY-PROTOCOL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ ghostunnel server ... --proxy-protocol-mode=tls
4646
ghostunnel server ... --proxy-protocol-mode=tls-full
4747
```
4848

49-
Using `--proxy-protocol-mode` implies `--proxy-protocol`; you do not need to
50-
pass both.
49+
`--proxy-protocol-mode` and `--proxy-protocol` are mutually exclusive; use one
50+
or the other, not both.
5151

5252
The backend will receive a PROXY protocol v2 binary header on each new
5353
connection, followed by the normal application data stream.

docs/SPIFFE-WORKLOAD-API.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ On UNIX systems (Linux, macOS):
2222

2323
```bash
2424
ghostunnel server \
25-
--use-workload-api-addr /run/spire/sockets/agent.sock \
25+
--use-workload-api-addr unix:///run/spire/sockets/agent.sock \
2626
--listen localhost:8443 \
2727
--target localhost:8080 \
2828
--allow-uri spiffe://domain.test/frontend

0 commit comments

Comments
 (0)