需要考虑位于公共域中的notebook服务器的安全性。为此,需要设置密码和使用SSL证书来建立连接。我们需要用证书实现基于https的安全通信。更多相关信息请见 https://en.wikipedia.org/wiki/Transport_Layer_Security。
具体步骤
下述步骤介绍了怎样配置安全的notebook服务器。
- 生成密码。可以在IPython环境中生成一个密码。启动一个新的IPython会话,键入如下命令:
输入第二行命令后,系统会提示你输入密码。你需要记住这个密码。之后会输出一个长字符串。复制该字符串,后面我们要用到它。
- 创建SSL证书。为了能创建SSL证书,你需要让openssl命令位于可访问路径中。
openssl命令行工具的设置过程不算太复杂,但可能有一些棘手的细节。遗憾的是,这些内容超出了本书的范围,好在网上有很多教程可以为你提供帮助。
执行如下命令,生成一个文件名为mycert.pem的证书:
openssl会提示你在一些区域里填写内容,请参阅相关的手册页了解更多信息。
- 创建一个服务器配置。使用如下命令为服务器创建一个专用的配置:
- 编辑配置文件。对配置文件进行编辑。在本例中,配置文件所在的位置是 ~/.ipython/profile_nbserver/ipython_notebook_config.py。
这个配置文件包括很多行内容,这里就不列出了。我们至少需要修改如下几行内容:
注意我们做的改动是,把证书位置指向了我们刚才创建的SSL证书,设置了密码,并且把端口号改为9999。
- 启动服务器。使用如下命令启动服务器,检查所做的修改是否已生效。
服务器已运行在9999端口,你需要使用https方式连接到该服务器。如果一切顺利,我们会看到一个登录页面。你很可能还需要接受浏览器发来的一个安全例外警告。
攻略小结
我们为公共域服务器创建了一个专用的配置。IPython中已有一些配置样本存在,例如默认配置。创建配置时,会在.ipython目录下添加一个profile_<profilename>
文件夹,文件夹中包括配置文件等内容。通过使用--profile=<profile_name>
命令行选项,可以加载指定的配置。用如下命令可以列出已经存在的配置。