-
Notifications
You must be signed in to change notification settings - Fork 134
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
internal_ssl + SlurmSpawner leads to certificate verification error #192
Comments
Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! 🤗 |
I ran into the same problem and did some digging into it. I'm still new to JupyterHub, so please take everything here with a grain of salt. The main issue is that as it stands now, the singleuser process does not have the CA certificate and the SSL key it needs to talk to the Hub server. These are created by the There are two problems, though:
I can't think of a batch-friendly way to solve problem 2 if the goal is to have only the specific node listed. The simplest workaround would be to list all possible nodes in the ssl_alt_names configuration entry. A slightly better implementation could use a pre-spawn hook to automatically add all nodes in the selected partition, or something to that effect. I set up a quick test with a |
Hi @leitec, I'd also like to use SlurmSpawner with internal_ssl enabled. |
Hi @Hoeze, it's been a while since I looked at this, and things may have changed since then. I recall that the internal SSL mode uses fairly strict certificate validation. If the hub server is not in alt names, the singleuser process can't provide the hub server with its address and port number. I think it's expected that you will add the hub server hostname there. But then, if the node where singleuser is running isn't listed in alt names, the hub server can't contact the singleuser server at the given address and port. This refers to the back end certificates created by JupyterHub for each session when internal_ssl is enabled, not the server certificate used on the user-facing JupyterHub endpoint, in case that's what you meant by client. |
I see, thanks @leitec! |
Bug description
I have setup a JupyterHub instance on my cluster's login node that uses
SlurmSpawner
to spawn notebook servers on our cluster. I have verified thatSlurmSpawner
works (wonderfully btw) and that SSL works everywhere except between the Hub server and the spawned notebook servers. I was experimenting with JupyterHub'sinternal_ssl
feature but as soon as I set it toTrue
in the config I was met with this errorI have looked at #31, #103, and jupyterhub/jupyterhub#2055 but I cannot find good documentation on this issue/what I am doing wrong.
Your personal set up
JupyterHub instance using
SlurmSpawner
to spawn notebook servers. Hub instance is on the same machine as Slurm login node.Ubuntu 20.04.1 LTS (all nodes)
jupyterhub.XXX.XXX
is CNAME-d to a www server on our network and all traffic is proxied through the www server to the login node (where jupyterhub is hosted).infocube.XXX.XXX.XXX
is the login node.jupyterhub_config.py
:https://pastebin.com/BJRb3NfP
The text was updated successfully, but these errors were encountered: