Jupyterhub子域名和多个SSL证书

问题描述:

我设置了一个多用户JupyterHub服务器。我已经实现了JupyterHub文档中推荐的子域机制。用户在其Web浏览器中键入服务器的登录URL(例如,https://notebook.example.com),并在登录时JupyterHub为其创建子域,例如https://username.notebook.example.comJupyterhub子域名和多个SSL证书

我有通配符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使用一个证书进行初始登录和不同子域的方法?

我想我自己找到了解决方案。我向我的权威机构发送了一个多域名证书的CSR请求,其中包括notebook.example.com和* .notebook.example.com。我按照这里的指示创建CSR:http://apetec.com/support/generatesan-csr.htm

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