我正在设置一个多用户 JupyterHub 服务器。我已经实现了 JupyterHub 文档中推荐的子域机制。用户在其 Web 浏览器中输入服务器的登录 URL,例如https://notebook.example.com,当他们登录时,JupyterHub 会为他们创建一个子域,例如https://username.notebook.example。 com。
我的通配符 DNS 工作得很好。问题是此设置似乎需要多个 SSL 证书。我的证书颁发机构非常友好地为我提供了 notebook.example.com 和通配符证书 *.notebook.example.com 的证书。如果我有 notebook.example.com 证书的此配置:
c.JupyterHub.ssl_cert = '/etc/pki/tls/certs/notebook.example.com.cer'
那么用户的浏览器将接受登录 URL 的证书,但是当用户被转发到用户的子域 URL 时会给出无法识别的证书消息。如果我使用其他证书,例如
c.JupyterHub.ssl_cert = '/etc/pki/tls/certs/wildcard.notebook.example.com.cer'
那么用户的浏览器会抱怨“notebook.example.com”与证书中的 *.notebook.example.com 不匹配,但当用户被转发到他们的子域时会接受证书。
显然,我可以告诉用户在一种情况下同意证书例外,但这可能会产生长期支持问题(我必须指导他们如何接受所有不同浏览器的无法识别的证书;他们可能会进入盲目接受证书的习惯)。
有没有一种方法可以将 JupyterHub 配置为使用一个证书进行初始登录,而另一个证书用于子域?