2017-02-15 184 views
0

我設置了一個多用戶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使用一個證書進行初始登錄和不同子域的方法?

回答

0

我想我自己找到了解決方案。我向我的權威機構發送了一個多域名證書的CSR請求,其中包括notebook.example.com和* .notebook.example.com。我按照這裏的指示創建CSR:http://apetec.com/support/generatesan-csr.htm

令我吃驚的是,他們接受了使用通配符主機名的多域證書請求。我仍在測試,但它看起來像它與Jupyterhub的登錄URL和子域URL一起工作沒有問題。