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
Copy file name to clipboardExpand all lines: docs/source/administrator/security.md
+41Lines changed: 41 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -489,3 +489,44 @@ proxy:
489
489
```
490
490
491
491
This would restrict the access to only two IP addresses: `111.111.111.111` and `222.222.222.222`.
492
+
493
+
(jupyterhub_subdomains)=
494
+
495
+
## Host user servers on a subdomain
496
+
497
+
You can reduce the chance of cross-origin attacks by giving each user
498
+
their own subdomain `<user>.jupyter.example.org`.
499
+
This requires setting [`subdomain_host`](schema_hub.config.JupyterHub.subdomain_host), creating a wildcard DNS record `*.jupyter.example.org`, and creating a wildcard SSL certificate.
500
+
501
+
```yaml
502
+
hub:
503
+
config:
504
+
JupyterHub:
505
+
subdomain_host: jupyter.example.org
506
+
```
507
+
508
+
If you are using a Kubernetes ingress this must include hosts
509
+
`jupyter.example.org`and `*.jupyter.example.org`.
510
+
For example:
511
+
512
+
```yaml
513
+
ingress:
514
+
enabled: true
515
+
hosts:
516
+
- jupyter.example.org
517
+
- "*.jupyter.example.org"
518
+
tls:
519
+
- hosts:
520
+
- jupyter.example.org
521
+
- "*.jupyter.example.org"
522
+
secretName: example-tls
523
+
```
524
+
525
+
where `example-tls` is the name of a Kubernetes secret containing the wildcard certificate and key.
526
+
527
+
The chart does not support the automatic creation of wildcard HTTPS certificates.
528
+
You must obtain a certificate from an external source,
529
+
for example by using an ACME client such as [cert-manager with the DNS-01 challenge](https://cert-manager.io/docs/configuration/acme/dns01/),
530
+
and ensure the certificate and key are stored in the secret.
531
+
532
+
See {ref}`jupyterhub:subdomains` in the JupyterHub documentation for more information.
0 commit comments