目的地管理

对HTTP、MQ等各类路由目的地进行分类管理。

HTTP目的地管理

负责HTTP URL类接收地址的统一管理。

1.URL管理


从左侧导航栏选择“消息流转”中的“目的地管理”,在页面左上方选择“HTTP”标签页,进入HTTP目的地管理页面。页面显示目前已经创建的HTTP目的地列表,包括URL、修改时间、描述、组织机构等信息。



点击右上方新增目的地按钮弹出新增目的地对话框,在框中添加URL地址,点击确定完成新增操作。用户可以在新增HTTP目的地对话框中为URL地址添加URL描述。如所添加的URL为专网地址,则需要勾选专网地址(注:目前HTTP目的地支持IPV6地址。另,若保存时提示专网地址错误,请联系运营人员维护进专网地址白名单)。


支持添加10个HTTP目的地地址,有特殊需求请联系客户经理。



如果用户定制的HTTP目的地地址中,存在HTTP地址,且没有启用数据加密,则弹出安全风险提示,用户确认后,才能进行下一步操作。如果用户点击取消或右上角关闭键,则返回新增HTTP目的地对话框;如果用户点击确认,则URL格式为HTTP格式。


如果用户启用消息加密,则需要填写加密Token。该Token将作为消息推送数字签名和数据加密的重要依据,需用户妥善保管。Token要求为8到16位字符。


在HTTP目的地管理列表右侧可以对已经创建的HTTP目的地进行操作,包括详情,编辑,删除,相关路由等。


点击“详情”按钮,弹出HTTP目的地详情对话框,包括URL,消息是否加密,是否为专网地址,URL描述,组织机构,创建时间,修改时间,推送指标统计等信息。如果URL为专网地址,该URL的右侧会有蓝色字段,内容为“专网地址”以作提示。推送指标统计中包括统计时间,推送速率,失败率,平均时延,上次失败时间,失败信息等内容。


点击“编辑”按钮,弹出HTTP目的地编辑对话框,可以编辑URL,消息是否加密,是否为专网地址,URL描述,加密Token等信息。


点击“删除”按钮,弹出删除提示对话框,点击确认即可删除HTTP目的地。


删除目的地时,如该目的地有关联路由和规则引擎则无法直接删除,需要取消关联后才可以删除。


点击“关联路由”按钮,可以查看该目的地关联的路由及规则引擎列表,可以通过点击关联路由对话框上方的标签页进行切换。

用户启用消息加密时,平台会对推送消息格式进行封装,格式为Json,格式如下:

{
    “msg_signature”:”xxxxxx”,//消息数字签名
    “enc_msg”:”xxxxxx”//加密编码后的消息内容}复制

其中,消息加密是基于用户配置的Token,采用AES对称加密算法,对推送消息内容进行加密,并将加密后的内容进行Base64编码后,推送给接收应用。接收方收到消息后,首先通过Base64进行解码,然后基于配置的Token,采用AES算法对消息内容进行解密。 消息数字签名是采用对推送消息加密内容(enc_msg)+Token取MD5的方式,对推送消息进行数字签名,将签名内容一并推送给接收应用。接收方收到消息后,可按照相同的方式对接收消息内容(enc_msg)+Token计算MD5,并与推送内容中的数字签名进行比较,如果相等则认为消息没有被篡改。 解密和MD5签名的代码参考如下:

public class AesUtil {    private static Logger log = LoggerFactory.getLogger(AesUtil.class);    private static final String CIPHER_ALGORITHM = "AES";    /**
     * 默认编码
     */
    private static final String CHARSET = "utf-8";    /**
     * 通过密码/token 生产16位byte数组,password对应字节不足16位数组末尾补0,超过16位取前16位
     * 
     * @param password
     * @return
     */
    private static byte[] encodeKey(String password) {        byte[] result = new byte[16];        for (int i = 0; i < 16; i++) {
            result[i] = 0;
        }        byte[] passByte = password.getBytes();        for (int i = 0; i < passByte.length; i++) {            if (i >= 16) {                break;
            }
            result[i] = passByte[i];
        }        return result;
    }    /**
     * AES解密,对加密后的base64字符串进行解密
     *
     */
    public static String decrypt(String password, String data) {        if (password == null || password.trim().length() < 1) {            throw new RuntimeException("加密失败,key不能为空");
        }        if (data == null) {            return null;
        }        try {
            SecretKeySpec key = new SecretKeySpec(encodeKey(password), CIPHER_ALGORITHM); 
            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
            cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(new byte[16]));            return new String(cipher.doFinal(Base64.getDecoder().decode(data.getBytes(CHARSET))), CHARSET);
        } catch (Exception e) {
            log.error("", e);            return data;
        }
    }    /**
     * 根据传入的字符串,返回Base64编码的MD5值
     * 
     * @param str
     * @return
     */
    public static String getMD5(String str) {
        MessageDigest messageDigest = null;        try {
            messageDigest = MessageDigest.getInstance("MD5");
            messageDigest.reset();
            messageDigest.update(str.getBytes(CHARSET));            byte[] byteArray = messageDigest.digest();            return Base64.getEncoder().encodeToString(byteArray);
        } catch (NoSuchAlgorithmException e) {
            log.error("", e);
        } catch (UnsupportedEncodingException e) {
            log.error("", e);
        }        return "";
    }

}复制


2.CA证书管理

从左侧导航栏选择“消息流转”中的“目的地管理”,在页面左上方选择“HTTP URL”标签页,进入HTTP目的地管理页面。点击“CA证书管理”。页面显示目前已经创建的CA证书列表,包括证书名称、域名/IP与端口、是否检查Common Name、Common Name、所属机构等信息。


点击右上方“增加证书”按钮弹出增加证书对话框,在框中进行上传证书,填写域名端口,选择是否检查CN(Common Name)等操作,如需要检查CN时需要填写CN(需要与消息接收服务端证书保持一致),点击“确定”完成添加操作。证书格式支持pem,der,cer,crt四种,且证书大小不可超过1M。一个域名端口只可以配置一个证书。

在CA证书列表右侧可以对已经创建的CA证书进行操作,包括详情,编辑,删除等。


点击“详情”按钮,弹出CA证书详情对话框,包括证书名称、域名端口、是否检查CN、Common Name、组织机构,创建时间,修改时间等信息。


点击“编辑”按钮,弹出CA证书编辑对话框,可以重新进行上传证书,选择是否检查CN以及修改CN等操作,点击“确定”按钮完成修改。注意域名端口是不可以修改的。


点击“删除”按钮,弹出删除提示对话框,点击确认即可删除CA证书。子机构仅可以查看根机构下CA证书的数据,无法修改与删除不属于本机构的数据。

用户在上传证书时,需要将多级证书合并后上传。具体步骤如下:

应用部署在第三方云服务器上时一般会存在多级证书,首先需要导出CA证书和服务器端证书。导出方法如下(以百度网址为例):

i.点击链接前面的图标,在弹出的窗口中点击进入“证书”。

ii.在跳出的证书窗口中,点击详细信息,选择复制到文件,如果该选项是灰色的,则请以管理员身份运行 IE 浏览器。


iii.导出证书的编码格式请选择“Base64编码X.509(.CER)(S)”。然后点击“下一步”,选择一个路径保存导出的证书,最后点击完成。

iv.在证书的“证书路径”标签页下,点击“baidu.com”的上一级证书,然后点击“查看证书”,重复上述步骤将CA证书导出;


v.把导出的服务器端证书与CA证书首尾相连放在同一个文本文件里,并将文件后缀名保存为.pem。(注意是服务器端证书拼接在前,CA证书拼接在后)这样就可以将证书文件上传到平台上了。

MQ目的地管理

负责MQ 主题类接收地址的统一管理。

从左侧导航栏选择“消息流转”中的“目的地管理”,在页面左上方选择“MQ”标签页,进入MQ目的地管理页面。如果还没有开通 MQ消息推送,需先点击“立即开通”按钮。开通后,页面上方将显示TenantId和Token。在物联网市场购买了MQ消息推送特定topic主题后,MQ列表中将展示购买的topic,包括Topic名称、修改时间、描述、所属机构等信息。


在MQ目的地管理页面列表右侧可以对已经创建的MQ目的地进行相关操作,包括详情,编辑,删除,相关路由、续约等。


点击“详情”按钮,进入Topic详情页面,页面左侧显示Topic名称,Topic ID,描述,创建时间,消息堆积量和Topic推送速率等信息。页面右侧显示Topic缓存空间使用情况。页面下方显示接收端状态列表,包括消费者标识,消费速率,未ack消息数以及启动时间。

点击页面左上方标蓝的“MQ主题”可以返回MQ目的地管理页面。


点击“编辑”按钮,弹出Topic编辑对话框,仅可以编辑Topic描述信息。

点击“删除”按钮,弹出删除提示对话框,点击确认即可删除MQ目的地。

删除目的地时,如该目的地有关联路由和规则引擎则无法直接删除,需要取消关联后才可以删除。

点击“关联路由”按钮,可以查看该目的地关联的路由及规则引擎列表,可以通过点击关联路由对话框上方的标签页进行切换。


这篇文档是否帮助您解决了问题?
如果您愿意进一步帮助我们改进文档 ,请留下您的联系方式。

专属客户经理为您服务

客服热线

400-8285-656

合作咨询

微信扫码 获取VIP服务

在线时间: 工作日9:00-18:00

CTWing真诚期待您的宝贵建议