神策分析致力于帮助客户搭建开放的数据平台,便于客户更深入的利用数据。本节文档涉及较多技术细节,适用于对相关功能有经验的用户参考。如果对文档内容有疑惑,请咨询您的数据咨询顾问获取一对一的协助。

1. 什么时候需要使用 HTTPS 的数据接入

  • 默认情况下,数据接入 API 使用的是 HTTP 协议
  • 若有以下需求,均可以参考本文档配置 HTTPS 数据接入:
    1)希望进一步提高数据传输层的安全性;
    2)需要在 HTTPS 站点上部署神策分析 JavaScript SDK 正常发送数据。

神策建议:在需要通过公网的情况下都使用 HTTPS 协议。

2. 如何配置 HTTPS 的数据接入

不同版本的用户可根据实际情况选择对应的配置方式,如有其它特殊情况请联系神策技术支持。

2.1 云版客户使用 HTTPS 的数据接入方案

2.2 私有部署版客户:

1)在云厂商的负载均衡或者硬件负载设备启用 HTTPS(推荐采用此方式)

2)单机版可以在神策服务的 Nginx 上配置 HTTPS     

2.1. 云版使用 HTTPS 的数据接入方案

神策分析云版默认已经配置了 HTTPS 数据接入,可直接获取对应的 HTTPS 数据接入地址使用。

2.1.1. 获取 HTTPS 数据接入地址

在神策分析页面获取 HTTPS 数据接入地址,需要使用 管理员 账户:

2.1.2. 云版数据接入地址格式

协议数据接入地址
(域名以实际为准)
HTTP http://域名:8106/sa?token=xxx

HTTPS 

(两种类型的地址均可用,选择一种使用即可)

https://域名:4006/sa?token=xxx

https://域名+datasink./sa?token=xxx

示例:

HTTP 数据接入地址为:

http://test.cloud.sensorsdata.cn:8106/sa?token=xxx
CODE

它对应的 HTTPS 数据接入地址为,两个地址均可用,选择一种使用即可:

地址一:scheme协议 由 HTTP 改为 HTTPS,端口由 8106 改为 4006。
https://test.cloud.sensorsdata.cn:4006/sa?token=xxx

地址二:使用数据接收专用域名。
https://test.datasink.sensorsdata.cn/sa?token=xxx
CODE

使用数据接收专用 datasink 域名,可以不显式指定端口号,即 443 为数据接收服务端口。

2.2. 私有部署版使用 HTTPS 的数据接入方案

2.2.1. 在云厂商的负载均衡或者硬件负载设备启用 HTTPS

强烈建议采用此方式。

  • 常见的负载设备均提供 HTTPS 接入功能,可根据实际情况选择不同云厂商的 LB 或硬件负载设备来开启 HTTPS;
  • 使用 HTTPS 加密传输需要提供 SSL 证书,神策不提供任何 SSL 证书。该证书可以通过多种渠道获取,若使用自签证书请确保客户端信任该证书;
  • 使用 HTTPS 请关注证书的过期时间,若证书过期可能会导致数据无法发送成功;
  • 如果是第一次使用云厂商的负载均衡,建议查看各厂商负载均衡配置官方文档,必要时可以给相应厂商提工单询问;
  • 如果依然无法完成转发配置请联系神策技术支持。

云厂商负载均衡配置官方文档参考 :

  •  阿里云:SLB
  •  腾讯云:CLB
  •  亚马逊云:ELB
  •  UCloud:ULB
  •  华为云:ELB

2.2.2. 在神策服务的 Nginx 上配置 HTTPS

仅单机版可用,一般不建议采用此方式。

对于 单机版 ,这里也提供直接在神策服务的 Nginx 上配置 HTTPS 的方案;

  • 该方案需要将 SSL 私钥放置于部署神策服务的机器上,且加密算法的选择受限于使用的 Nginx 二进制编译时的 OpenSSL 版本;
  • 使用 HTTPS 加密传输需要提供 SSL 证书,神策不提供任何 SSL 证书。该证书可以通过多种渠道获取,若使用自签证书请确保客户端信任该证书;
  • 使用 HTTPS 请关注证书的过期时间,若证书过期可能会导致数据无法发送成功;
  • HTTPS 的 TLS/SSL 层需要消耗额外 CPU、带宽资源。

在神策服务的 Nginx 上配置 HTTPS 可以参考以下步骤:

  1. 登录部署神策分析机器:

    # 切换到 sa_cluster 用户
    su - sa_cluster
    BASH
  2. 切换到部署 Nginx 的目录:

    cd $SENSORS_PLATFORM_HOME/nginx
    BASH
  3. 创建证书目录:

    mkdir -p $SENSORS_PLATFORM_HOME/nginx/cert
    BASH
  4. 将配置好的 SSL 证书公钥和私钥放置到创建的 cert 目录下;

  5. 切换到部署 Nginx 的配置目录:

    Nginx 启动时会加载 conf.d 目录下的所有配置文件,这些配置文件内应该只包含 server 代码块;

    cd $SENSORS_PLATFORM_HOME/nginx/conf.d
    BASH
  6. 复制模版文件

    cp -a sensors_api_https.conf.default sensors_api_https.conf
    CODE
    模版文件名描述
    sensors_api_https.conf.defaulthttps 协议的数据接入服务转发配置参考模版
  7. vim 按照配置文件中的注释修改即可

  8. 检查 Nginx 配置,在 Nginx 目录下执行如下命令测试配置是否正确:

    cd $SENSORS_PLATFORM_HOME/nginx/
    sudo sbin/nginx -t
    BASH

    如果出现如下提示说明配置正确:

    nginx: the configuration file ./conf/nginx.conf syntax is ok
    nginx: configuration file ./conf/nginx.conf test is successful

    若有报错请按照报错提示修改后重新检测

  9. 配置测试并检查无误后,在 Nginx 目录下执行如下命令使 Nginx 重新加载配置:

    cd $SENSORS_PLATFORM_HOME/nginx/
    sudo sbin/nginx -s reload
    BASH

3. 如何验证配置是否正确

  • 获取 HTTPS 数据接入地址加 /debug (例如:https://datasink.cloud.sensorsdata.cn/debug)
  • 在浏览器中直接访问,如返回“Sensors Analytics is ready to receive your data!” ,证明配置正确。