ios 服务器端推送证书生成的方法
1.打开mac的钥匙串,生成证书请求文件
2.登录Apple dev账号,编辑对应APP ID
点击创建证书,使用步骤1生成的证书请求创建推送证书,开发证书和推送证书可以用同一个证书请求生成证书
3.下载步骤2中生成的推送证书并导入到系统中
导出证书保存为.p12格式,不用设置秘钥直接导出
4.导出证书私钥,秘钥名称就是步骤1中创建证书请求的名字,默认为系统当前用户名
设置私钥保护密码,这个密码一定要记住后面有用
5.转换证书格式
转换推送证书为pem格式
openssl pkcs12 -clcerts -nokeys -out dev_cert.pem -in dev_cer.p12
转换私钥为pem格式,这里需要输入三次秘钥,第一次为步骤4中导出私钥时设置的秘钥,第二和三次为pem设置私钥,这里设置的私钥需要保留
openssl pkcs12 -nocerts -out dev_key.pem -in dev_key.p12
合成证书
cat dev_key.pem dev_cert.pem > dev_push.pem
6.验证证书
iOS的推送证书分为两种,开发证书和发布证书。开发证书用于平时测试用,只有导出的ipa文件为开发模式时才能使用;发布证书,需要导出的ipa文件为ad hoc模式,或者是发布到APP store中的安装包。
验证开发证书方式
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert dev_cert.pem -key dev_key.pem
验证发布证书的方式
openssl s_client -connect gateway.push.apple.com:2195 -cert pro_cert.pem -key pro_key.pem
由于我们示例中导出的是开发证书,所有使用验证开发证书的方式。
输入如下内容说明证书验证通过
7.提交证书给服务器
最终提交给服务器的为步骤5中 生成的dev_push.pem和转换私钥过程中新设置的秘钥。开发证书也是按照这个步骤来生成。
8.特别提示
过程中生成的 .p12文件记得保留,我们在其他Mac上使用一些推送测试工具时,需要导入dev_key.p12或者pro_key.p12才能推送出消息。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
iOS开发之(APNS)远程推送实现代码 附证书与真机调试
远程推送通知 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(ApplePush Notification Services) 为什么需要远程推送通知传统获取数据的局限性只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容远程推送通知可以解决以上问题不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知远程推送通知使用须知所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接什么是长连接只
-
ios 服务器端推送证书生成的方法
1.打开mac的钥匙串,生成证书请求文件 2.登录Apple dev账号,编辑对应APP ID 点击创建证书,使用步骤1生成的证书请求创建推送证书,开发证书和推送证书可以用同一个证书请求生成证书 3.下载步骤2中生成的推送证书并导入到系统中 导出证书保存为.p12格式,不用设置秘钥直接导出 4.导出证书私钥,秘钥名称就是步骤1中创建证书请求的名字,默认为系统当前用户名 设置私钥保护密码,这个密码一定要记住后面有用 5.转换证书格式 转换推送证书为pem格式 openssl pkcs12 -clc
-
浅谈iOS推送证书生成pem文件(详细生成过程)
1.pem文件概述 pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,下面介绍一下pem文件的生成. 2.生成pem文件步骤 1.打开钥匙串,选择需要生成的推送证书 2.将certificate和private key导出得到.p12文件 2.1.生成证书apns-dev-cert.p12的p12文件,按照下面操作导出p12,桌面对应生成apns-dev-cer.p12文件 2.2.生成证书对应的秘钥apns-dev-key.p12的p12文件,按照下面操
-
iOS远程推送Push开发教程
远程推送通知 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(Apple Push Notification Services) 为什么需要远程推送通知 传统获取数据的局限性 只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容 远程推送通知可以解决以上问题 不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知 远程推送通知使用须知 所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接
-
iOS自定义推送消息提示框
看到标题你可能会觉得奇怪 推送消息提示框不是系统自己弹出来的吗? 为什么还要自己自定义呢? 因为项目需求是这样的:最近需要做 远程推送通知 和一个客服系统 包括店铺客服和官方客服两个模块 如果有新的消息推送的时候 如果用户当前不在客服界面的时候 要求无论是在app前台 还是app退到后台 顶部都要弹出系统的那种消息提示框 这样的需求 我们就只能自定义一个在app内 弹出消息提示框 实现步骤如下: 1.我们自定义一个view 为 STPushView 推送消息的提示框view #import
-
iOS 10 推送高阶篇(必看)
推荐阅读: iOS10推送之基础知识(必看篇) 这篇文章开始,我会跟大家好好讲讲,苹果新发布的iOS10的所有通知类. 一.创建本地通知事例详解: 注意啊,小伙伴们,本地通知也必须在appdelegate中注册中心,通知的开关打不打开无所谓的,毕竟是本地通知,但是通知的接收的代理,以及通知点击的代理,苹果给合二为一了.所以大家还是需要在appdelegate中写上这2个方法,还有不要忘记在- (BOOL)application:(UIApplication *)application didFi
-
微信公众号服务号推送模板消息设置方法(后端java)
目录 推送的模板消息示例如下 : 设置模板消息 编码 1. 添加依赖 2. SubscriptionMessageUtil.java 3. 配置参数 4. 使用 微信测试号 总结 模板消息文档 公众号的类型分为服务号.订阅号和企业号,其中服务号和订阅号比较常见.要想实现公众号推动消息给指定的用户,其类型必须为服务号. 推送的模板消息示例如下 : 设置模板消息 此处为正式环境的设置,开发环境可使用微信测试平台提供的测试账号体验和测试公众平台的所有高级接口,无需提前申请审核,详情见本文最后章节. 首
-
iOS本地推送简单实现代码
本文为大家分解介绍了iOS本地推送代码的三步骤,供大家参考,具体内容如下 第一步:创建本地推送 // 创建一个本地推送 UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease]; //设置10秒之后 NSDate *pushDate = [NSDate dateWithTimeIntervalSinceNow:10]; if (notification != nil) { // 设置推
-
Spring MVC4.1服务器端推送实现过程解析
这篇文章主要介绍了Spring MVC4.1服务器端推送实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 服务器端推送 SSE(server send event)是一种服务器端向浏览器推送消息的技术,而不是我们常规的浏览器像server请求然后响应; 当我们需要使用server向浏览器主动推送数据的时候,请考虑使用该项技术,而不是考虑具有双向通讯功能的websocket; 以前我们用ajax轮询server也能实现,服务器负担大;
-
详解iOS本地推送与远程推送
一.简介 分为本地推送和远程推送2种.可以在应用没有打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用:如果用户不同意则下次打开程序也不会弹出该提示框,需要用户到设置里面设置.一共有三种提示类型: UIUserNotificationTypeBadge:应用图标右上角的信息提示 UIUserNotificationTypeSound:播放提示音 UIUserNotificationTypeAlert:提示框 二.本地推送 1
-
iOS消息推送原理及具体实现代码
一.消息推送原理 在实现消息推送之前先提及几个于推送相关概念,如下图1-1: 1.Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]): 2.APNS:Apple Push Notification Service[苹果消息推送服务器]: 3.iPhone:用来接收APNS下发下来的消息: 4.Client App:IOS设备上的应用程序,用来接收iphone传递APNS下发的消息到制定
随机推荐
- python发送邮件实例分享
- XML数据库中几个容易混淆的概念
- sqlserver 数据库压缩与数据库日志(ldf)压缩方法分享
- 微信小程序链接传参并跳转新页面
- Node.js中 __dirname 的使用介绍
- IOS本地日志记录解决方案
- iOS开发实现音频播放功能
- Xen虚拟化进阶篇 Xen平台下虚拟机的实时迁移
- JS中typeof与instanceof之间的区别总结
- js与css实现弹出层覆盖整个页面的方法
- vue过渡和animate.css结合使用详解
- js利用事件的阻止冒泡实现点击空白模态框的隐藏
- Linux系统中bash shell编程的10个基础问题讲解
- 获取服务器信息的Shell脚本分享(ubuntu、centos测试通过)
- Java编写多功能万年历程序的实例分享
- SQL Server设置主键自增长列(使用sql语句实现)
- msnet.sys、jet300.dll的简单分析与清除办法
- Java连接操作Oracle数据库代码详解
- CentOS7修改服务器系统时间的方法
- 老生常谈反射之Class类的使用(必看篇)