配置 SSL (AEN 4.2.0)

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

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

www.enterprise.conf文件是nginx.conf 用于 AEN的默认文件。它会/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.conf是一个用于 SSL 的 NGINX 配置文件。它被设置为使用server.crtserver.keycert 文件。

注意:您必须更改这些值以指向您的域的签名证书文件。

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

以 root 身份执行以下步骤:

  1. 停止 NGINX:

    服务 nginx 停止
    
  2. /etc/nginx/conf.d/www.enterprise.conf文件移动到备份目录。

  3. /opt/wakari/wakari-server/etc/nginx/conf.d/www.enterprise.https.conf 文件复制 到/etc/nginx/conf.d.

    注意:/etc/nginx/conf.d可能有www.enterprise.confwww.enterprise.https.conf但可能没有两者。

  4. 编辑 /etc/nginx/conf.d/www.enterprise.https.conf 文件并将server.crtserver.key值更改为真实证书和密钥文件的名称(如果它们不同)。

  5. 运行以下命令重新启动 NGINX:

    服务 nginx 启动
    
  6. 更新 WAKARI_SERVER 和 CDN 设置以在以下配置文件中使用 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. 将网关证书复制gateway.crt/opt/wakari/wakari-server/etc/ 服务器上。

  8. 在编辑器中,打开/opt/wakari/wakari-server/etc/wakari/wk-server-config.json 并添加:

    “verify_gateway_certificate”  “/opt/wakari/wakari-server/etc/gateway.crt”
    
  9. 通过运行以下命令重新启动服务器上的 AEN 服务:

    服务 wakari-服务器重启
    

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

  10. 在 AEN 中,验证浏览器是否使用 https。在管理设置页面的数据中心下,单击网关,然后选择 https:

    ../../../../../_images/ae-notebooks/4.2.0/aen-install-https.png

在网关上配置 SSL

  1. /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" 
        } 
    }
    
  2. 如果您有一个由私有根 CA 签署或由中间机构签署的服务器证书,请添加:

    { 
       EXISTING_CONFIGURATION , 
       "https" :  { 
           "key" :  "/opt/wakari/wakari-gateway/etc/gateway.key" , 
           "cert" :  "/opt/wakari/wakari-gateway/etc/gateway.crt" , 
           “ca”  [ “/opt/wakari/wakari-gateway/etc/server.crt” ] 
        } 
     }
    

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

  3. 重启网关:

    须藤服务 wakari 网关重启
    

在计算节点上配置 SSL

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

安全提醒

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

例如:如果证书文件被称为server.crtserver.key,然后用root帐户设置权限:

chmod 600 server.key
chmod 600 server.crt

启用或禁用 Strict-Transport-Security 标头

默认情况下,www.enterprise.https.conf文件中启用了 Strict-Transport-Security (STS) :

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

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

  • 网关在与服务器不同的主机上运行。

    或者

  • 已为网关启用 SSL。

如果以下两项都为真,您必须注释掉这一行:

  • 网关与服务器运行在同一台主机上。

  • 尚未为网关启用 SSL。

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