SSL (AEN 4.1.2)

Anaconda Enterprise Notebooks (AEN) 服务器用于NGINX将所有传入的 http(s) 请求代理到在本地端口上运行的服务器,以及 SSL 终止。默认设置使用 http(非 SSL),因为配置 SSL 需要证书文件,并且每个企业都有自己的证书文件。

当前不支持带有密码的 SSL 证书。

www.enterprise.conf文件是NGINX .conf用于 Anaconda Enterprise Notebooks的默认文件。它会/etc/nginx/conf.d在服务器安装期间复制到该 目录中。

注意:本文档适用于在网关安装并注册到服务器后设置 SSL 的情况。

所需文件

要在 AEN 上配置 SSL,您需要以下文件

  • 服务器证书和密钥
  • 服务器 CA 包
  • 网关证书和密钥
  • 网关 CA 包

在 AEN 上配置 SSL:

  1. 将网关证书和密钥复制到网关/opt/wakari/wakari-gateway/etc/上作为gateway.crtgateway.key
  2. 将网关 CA 包复制到/opt/wakari/wakari-server/etc/服务器上
  3. 将服务器证书和密钥复制到服务器/etc/nginx上作为 server.crtserver.key
  4. 将服务器 CA 包复制到/opt/wakari/wakari-gateway/etc/网关上

如果您拥有由私有根 CA 和/或中间机构签署的证书,则必须满足以下条件:

  • 网关 CA 包可以包含根 CA、任何中间授权和证书
  • 服务器 CA 包必须分成单独的文件,用于根 CA、任何中间和证书

在服务器上配置 SSL

www.enterprise.https.confNGINXSSL 配置的配置文件。它使用server.crtserver.key证书文件,但必须更改这些值以指向您的域的签名证书文件。

注意:自签名证书或由私有根 CA 签名的证书需要额外配置。

执行以下步骤root

  1. 停止NGINXservice nginx stop

  2. /etc/nginx/conf.d/www.enterprise.conf文件移动到备份目录

  3. 复制 /opt/wakari/wakari-server/lib/python2.7/site-packages/

    wk_server/config/www.enterprise.https.conf 归档到 /etc/nginx/conf.d

    注意:只有其中之一www.enterprise.confwww.enterprise.https.conf可以在/etc/nginx/conf.d

  4. 编辑/etc/nginx/conf.d/ www.enterprise.https.conf 文件,改变server.crtserver.key价值的真实证书的名称和密钥文件,如果它们是不同的

  5. 开始NGINXservice nginx start

  6. 更新配置文件中的WAKARI_SERVERCDN设置以使用 https 而不是 http。需要修改的配置文件有:

    / opt / wakari / wakari - server / etc / wakari / config . json 
    / opt / wakari / wakari - gateway / etc / wakari / wk - gateway - config json 
    / opt / wakari / wakari - compute / etc / wakari / config json
    
  7. 编辑/opt/wakari/wakari-server/etc/wakari/wk-server-config.json和添加

    “verify_gateway_certificate”  “/opt/wakari/wakari-server/etc/gateway.crt”
    
  8. 在服务器上重启 Anaconda Enterprise Notebooks 服务:

    service  wakari -服务器 重启
    
  9. 浏览到 Anaconda Enterprise Notebooks 并验证浏览器是否使用https.

  10. 在管理设置中,选择并选中该框。Data CentersGatewayhttps

    ../../../_images/ae-notebooks/4.1.2/install/https.png

注意:此步骤可能会返回错误,因为尚未为 SSL 配置网关。

在网关上配置 SSL

  1. 编辑/opt/wakari/wakari-compute/etc/wakari/config.json以将 http 更改为 https

  2. 修改/opt/wakari/wakari-gateway/etc/wakari/wk-gateway-config.json配置文件并添加:

    { 
       EXISTING_CONFIGURATION , 
       "https" :  { 
           "key" :  "/opt/wakari/wakari-gateway/etc/gateway.key" , 
           "cert" :  "/opt/wakari/wakari-gateway/etc/gateway.crt" 
        } 
     }
    
  3. 如果您有一个由私有根 CA(和/或中间机构)签名的服务器证书,请将以下内容添加到https密钥中

    “ca”  [ “/opt/wakari/wakari-gateway/etc/server.crt” ]
    

    注意:ca密钥必须包含 CA 根路径、任何中间路径和服务器证书的单独值

  4. 重启网关: sudo service wakari-gateway restart

计算节点上的 SSL

Anaconda Enterprise 不支持计算节点上的直接 SSL。如果您需要在计算节点上使用 SSL,您必须将每个计算节点安装在同一台服务器上作为网关使用http://localhost:5002URL 值,同时将其添加为资源,并且您必须为每个计算节点使用一个网关。

安全提醒

证书文件的权限需要正确设置,以防止其他人读取它们。由于NGINX由 root 运行,因此只有 root 用户需要对 cert 文件的读取访问权限。

假设证书文件被称为server.crt并且server.key,使用root帐户设置权限,如下所示:

chmod  600 服务器关键
chmod  600 服务器资源管理器

严格的传输安全标头

www.enterprise.https.conf文件中默认启用 Strict-Transport-Security 。

add_header  Strict - Transport - Security  max - age = 31536000 ;

如果以下任一情况为真,它可以保持启用状态。

  • 网关运行在与服务器不同的主机上;或者
  • 已为网关启用 SSL

如果以下两个条件都为真,则有必要注释掉这一行:

  • 网关与服务器运行在同一台主机上;和
  • 尚未为网关启用 SSL

当这些条件为真时启用它会导致服务器和网关之间的协议不匹配,并且应用程序将无法正确启动。