消息推送应用实现消息推送的接口,部署证书,同时上传根证书到平台。
目前消息推送失败,很大一部分原因是证书上传不对。推荐小伙伴们使用下面的方法导出证书。

推送:平台调用应用服务器的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平台技术对接分享】如何上传正确的消息推送证书相关推荐

  1. IOT物联网,如何上传正确的消息推送证书到第三方平台

    做物联网久了,肯定要和第三方平台打交道,中国三大运营商都可以进行物联网推送,我们公司用的电信平台,这两天由于登陆电信平台的一个提示 尊敬的客户,您好! 为了更好的为您服务,提高安全能力,NB网关计划于 ...

  2. Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

    Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...

  3. uniapp打包app,对接华为厂商,实现unipush离线消息推送

    今天终于可以抽出点时间,来记录一下这几天心塞的心情.上周公司派过来一个活,说是使用uniapp制作一个app,同时要实现在线消息推送和离线消息推送,啥话没说就揽了下来.不过说实在的,从来没有开发过ap ...

  4. 客户端技术:一文带你了解iOS消息推送机制

    导语 | 消息推送我们几乎每天都会用到,但你知道 iOS 中的消息推送是如何实现的吗?本文将从推送权限申请,到本地和远程消息推送,再到 App 对推送消息的处理等多个步骤,详细介绍 iOS 中消息推送 ...

  5. 消息已读未读的模型设计_阿里云技术专家分享:现代 IM 系统中消息推送和存储架构的实现...

    前言 IM 全称是"Instant Messaging",中文名是即时通讯.在这个高度信息化的移动互联网时代,生活中 IM 类产品已经成为必备品,比较有名的如钉钉.微信.QQ 等以 ...

  6. express框架实现文件上传、下载及推送(使用Websocket)

    目录 文件上传 客户端上传文件:bootstrap-fileinput插件 插件安装 插件使用 服务端接受文件:formidable模块 文件列表推送 客户端主动获取文件列表:fs模块 服务端主动推送 ...

  7. 消息推送平台高可用实践(上)

    本文来自网易云社区 作者:李弈远 消息推送平台为公司内部和第三方应用提供统一消息推送服务,支持广播.私信.组播.附件等多种消息推送方式,覆盖IOS.Android.PC.Web等多种终端,并根据应用特 ...

  8. 消息推送技术干货:美团实时消息推送服务的技术演进之路

    本文由美团技术团队分享,作者"健午.佳猛.陆凯.冯江",原题"美团终端消息投递服务Pike的演进之路",有修订. 1.引言 传统意义上来说,实时消息推送通常都是 ...

  9. 京东京麦商家开放平台的消息推送架构演进之路

    1.前言 京麦实时消息推送是京东的京麦商家开放平台的核心组成部分.从消息源到消息中心再到触达用户,以及最终根据消息协议呼起操作页面,京麦实时消息推送是一个完整且健康的生态闭环.下面我会详细的介绍下京麦 ...

最新文章

  1. i基准指令集 mips_mips addiu
  2. cuda 编 程(六)简单CUDA程序的基本框架
  3. 利用三层交换机实现VLAN间路由配置
  4. python中主要内建函数
  5. qt鼠标进入窗体后,窗体自动置顶
  6. checkAll全选的一个小例子
  7. VS2012 ffmpeg 没有定义的lrint
  8. 设置Qt直接运行路径
  9. PHP面向对象之继承和多态
  10. 从QQ2010看腾讯
  11. matlab画正态分布图简单算法
  12. android自定义大转盘,Android使用surfaceView自定义抽奖大转盘
  13. 民间秘术——各类求仙方法
  14. 中国IT工作者35岁后的发展出路调查报告(4)
  15. 浮动与display:inline-block
  16. 百度站长俱乐部SEO提问收集-2
  17. 程序,批量启动程序脚本
  18. pcm vlc 文件_VLC播放pcm
  19. 中国名人名言网今天在天csdn开通了
  20. Linux性能优化-内存的swap

热门文章

  1. 视觉SLAM笔记(48) 局部地图
  2. html设置数组的方法,js改变原数组的方法有哪些?
  3. cesium获取模型实时坐标_Cesium 顶点着色器中解算模型坐标
  4. 查找某一字符串在目标字符串中所在的位置
  5. python默认参数不能定义为可变对象类型
  6. 在CentOS 7 上搭建LAMP
  7. C# WebService 基础实例
  8. coupled/decoupled
  9. Asp.net(c#)GridView分页时用图片显示上一页,下一页
  10. CCF201803-2 碰撞的小球