0

我正在设置一个多用户 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 配置为使用一个证书进行初始登录,而另一个证书用于子域?

4

1 回答 1

0

我想我自己找到了解决方案。我向我的授权机构发送了一份 CSR 请求,以获取多域证书,其中包括 notebook.example.com 和 *.notebook.example.com。我按照此处的说明创建了 CSR:http ://apetec.com/support/generatesan-csr.htm

令我惊讶的是,他们接受了带有通配符主机名的多域证书的请求。我仍在测试,但看起来它可以与 Jupyterhub 的登录 URL 和子域 URL 一起使用,没有问题。

于 2017-02-16T23:34:54.180 回答