【IoT平台技术对接分享】如何上传正确的消息推送证书
消息推送应用实现消息推送的接口,部署证书,同时上传根证书到平台。
目前消息推送失败,很大一部分原因是证书上传不对。推荐小伙伴们使用下面的方法导出证书。
推送:平台调用应用服务器的restful接口将数据主动发给北向应用(这些restful接口是平台在北向接口文档的消息推送章节提前定好,由应用服务器实现的。)
回调地址:应用实现消息推送的restful接口时,可以自定义接口的URL,这些URL就是回调地址
订阅:应用服务器调用平台订阅接口,将回调地址设置给平台。
1、使用IE浏览器打开回调地址(无论回调地址有没有应用界面)
如果是自签名的证书,会出现如下提示,选择继续:

比如这是我本地的应用服务,回调地址是https://XX.XX.XX.XX:8099/v1.0.0/messageReceiver,由于没有写GET方法,所以会提示405,不用管这个报错,只要能查看证书即可。

说明:如果打不开具体看提示什么错误,可能是服务没有启起来,或者服务有问题,也可能是使用了双向认证,得在浏览器中导入客户端证书才能打开
2、查看证书
IE浏览器:

谷歌浏览器:

如果使用的不是自签名证书,则不会报证书错误,(以百度为例):

在证书路径下可以看到有3级证书:

当前查看的证书是最后一级:

3、导出证书
在详细信息页签中选择复制到文件,点击下一步(如果按钮是灰的点不了,就用管理员权限运行ie再试一下)

注意选择Base64编码格式:

然后下一步,选择一个路径保存导出的证书,最后点击完成:

4、查看证书文本内容证书导出后可以使用文本编辑器打开:

5、导出上级证书,合并证书
上面4个步骤只导出最后一级证书,如果应用部署在别人提供的云上,一般会有多级证书,点击上一级证书,再点击查看证书,这时证书的颁发者和使用者会随之改变,重复步骤1-4,再导出这一级证书。
有多少级证书就导出多少个证书。(最下面的baidu.com可以不导出上传,但加上也没关系,可以多传不能少传)

注意:最上面一级证书是根证书,颁发者和使用者是一样的。
如果最上面一级的证书的颁发者和使用者不是一样的话,那么说明这个证书不是根证书,则还有证书没有部署到应用上,这时,要么得把根证书(这时浏览器上查看不到的根证书)一起加到导出的证书中;要么得调整应用部署的证书,再重新导出证书。

把导出的证书都放到一个文件里,头尾相连(如下图所示):

将证书文件后缀改为pem,就可以上传到平台上。
有两个地方可以上传证书:
1、开发者portal->找到对应的应用->对接信息->应用安全->证书管理
2、SP portal->应用管理->在应用列表中找到对应的应用->应用定义(或应用详情)->消息推送->将推送协议修改为HTTPS->再上传证书
P.S. 追加证书校验方法,使用curl命令可以测试证书与回调接口是否匹配:
单向认证:
curl -H "Content-Type:application/json" -X POST -d '{"notifyType":"deviceDataChanged"}' https://127.0.0.1:443/test -v --cacert application_ca.pem
其中https://127.0.0.1:443/test需要换成应用服务器的回调地址,application_ca.pem就是上面使用浏览器导出的证书(即应用服务器根证书)
双向认证:
curl -H "Content-Type:application/json" -X POST -d '{"notifyType":"deviceDataChanged"}' https://127.0.0.1:443/test -v --cacert application_ca.pem --cert client.CertwithKey.pem
其中https://127.0.0.1:443/test需要换成应用服务器的回调地址,application_ca.pem就是上面使用浏览器导出的证书(即应用服务器根证书);client.CertwithKey.pem是客户端证书,只要是应用服务器信任的根证书签发的子证书就能校验通过,但对证书格式有要求。可以将平台提供的ca.pem加入应用服务器的证书信任链中,再使用平台提供的outgoing.CertwithKey.pem。
(以下是单向认证结果示例)

作者:Lily_w
【IoT平台技术对接分享】如何上传正确的消息推送证书的更多相关文章
- Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能
Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...
- devpi 快速入门:上传,测试,推送发行版
安装 devpi 客户端和服务器端 pip install -U devpi 这将安装devpi-client,devpi-server 和 devpi-web 三个Python PyPi包. 初始化 ...
- 了解iOS消息推送一文就够:史上最全iOS Push技术详解
本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表. 1.引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ.微信等IM界面处于前台时,聊天消息和指 ...
- Android 生态消息推送平台介绍
一.手机厂商平台 华为消息推送服务 华为推送(Push)是为开发者提供的消息推送平台,建立了从云端到手机端的消息推送通道,使应用可以将最新信息及时通知用户,从而构筑良好的用户关系,提升用户的感知和活跃 ...
- 玩转OneNET物联网平台之HTTP服务① —— 模拟上传温度(TcpClient)
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- iot平台异构对接文档
iot平台异构对接文档 准备工作 平台提供的XAgent开发指南.pdf demo程序xagent-ptp-demo 平台上添加产品得到产品id和key 部署时需要插件的基础程序<xlink-x ...
- MQTT是IBM开发的一个即时通讯协议,构建于TCP/IP协议上,是物联网IoT的订阅协议,借助消息推送功能,可以更好地实现远程控制
最近一直做物联网方面的开发,以下内容关于使用MQTT过程中遇到问题的记录以及需要掌握的机制原理,主要讲解理论. 背景 MQTT是IBM开发的一个即时通讯协议.MQTT构建于TCP/IP协议上,面向M2 ...
- iOS推送证书上传(转)
iOS 推送证书制作(JAVA/PHP) 在使用Java或者PHP制作iOS推送服务器的时候,需要自己从开发者网站上导出的aps_developer_identity证书和Apple Developm ...
- 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...
随机推荐
- CSPS模拟 50
收获很多,良心出题人 T1 施工 研究半天,最后30分暴力走人 考后看了题解,稍神仙这题弃对了...... 要拿30+,必须发现要填的话一定是填一个坑使它底部变平,最终底部高度小于等于两边 为什么是坑 ...
- windows下安装nginx和基本配置
1.下载并安装nginx 到nginx官网上下载相应的安装包,http://nginx.org/en/download.html: 下载之后进行解压,将解压后的文件放到自己心仪的目录下,如下图所示: ...
- day 2 DP专场
上午讲了一上午背包,从01背包到完全背包到多重背包,感觉也没说什么,旁边的大佬一直在飞鸽里说让老师讲快点,然而最后也没人敢跟老师说.... 例题真的各个都是神仙题, 挂饰 好像就是一上午最简单的... ...
- 大数据之路day01_3--JAVA语言基础(1)
从这里开始,正式进入正轨 1.关键字 2.main main是关键字吗? 不是,他只是一个标识符,只不过有点特殊,虚拟机可以识别. main(主函数)的作用 1:可以保证程序的独立运行 2:是程序的 ...
- 线性模型之逻辑回归(LR)(原理、公式推导、模型对比、常见面试点)
参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解LR): (1).https://zhuanlan.zhihu.com/p/74874291 (2).逻辑回归与交叉熵 (3) ...
- Unity入门--实用知识
目录 1. VS适配 2.实用快捷操作 3.Unity API文档 4.项目整理 1. VS适配 让你的VS完美支持Unity的脚本编写可以让你写起C#脚本来事半功倍,比如代码补全功能,可以参考下面这 ...
- jsp+servlet分页查询
分页查询 减少服务器内存开销 提高用户体验 效果图 思绪图 分页显示Bean文件代码 package cn.ytmj.findlist.domain; import java.util.List; / ...
- linux环境中,两个不同网段的机器互通
linux环境中,两个不同网段的机器互通 人评论3690人阅读2019-11-18 14:50:21 环境如下: host1 单网卡 eth0 172.24.100.15/16 hos ...
- logback日志回顾整理--2018年8月8日
几年前使用过logback作为项目的日志框架. 当时觉得这个框架比log4j更加好用. 所以系统的学习了一遍. 后来换了公司, 不再使用logback. 如今, 又有机会使用logback了, 所以, ...
- vue使用talkIngData统计
上篇刚使用了百度统计,由于后端同事没有找到百度统计的api,于是就找了个talkingData平台... 平台地址 依旧是先注册 进入应用统计分析 创建应用 获得appid 在vue中埋点 1.in ...