浅谈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文件,按照下面操作导出p12,桌面对应生成apns-dev-ker.p12文件。

3、将apns-dev-cert.p12和apns-dev-key.p12文件对应转化为apns-dev-cer.pem和apns-dev-key.pem文件

3.1、打开终端,输入cd Desktop

cd Desktop

3.2、将apns-dev-cert.p12文件转换为pen格式,输入openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

此处要求输入一个密码,输入123456.(此处为导出p12的保护密码),此时桌面会生成一个apns-dev-cert.pem文件

3.3、将apns-dev-key.p12文件转换为pen格式,输入openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

此处要求输入一个密码,输入123456.(此处为导出p12的保护密码)

此处要求设置一个保护密码,输入123456.

此处要求验证保护密码,再一次输入123456,此时桌面会生成一个apns-dev-key.pem文件

4、将apns-dev-cert.pem和apns-dev-key.pem文件合成为apns-dev.pem文件,此文件将给php后台用于连接苹果服务器时需要使用,在终端继续输入:cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem,此时桌面生成一个apns-dev.pem

cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem

在终端测试:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem

终端最后显示以下内容,表示配置pem文件成功,

.............................

Key-Arg   : None

Start Time: 1467854873

Timeout   : 300 (sec)

Verify return code: 0 (ok)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 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中三种生成随机数方法

    ios 有如下三种随机数方法: //第一种 srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; //第二种 srandom(time(0)); int i = random() % 5; //第三种 int i = arc4random() % 5 ; 注: ① rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样. ② arc4random() 是一个

  • iOS推送的那些事

    直接切入主题,讲讲如何模拟推送以及处理推送消息.在进入主题之前,我先说几个关键流程: 1.建Push SSL Certification(推送证书) 2.OS客户端注册Push功能并获得DeviceToken 3.用Provider向APNS发送Push消息 4.OS客户端接收处理由APNS发来的消息 推送流程图: Provider:就是为指定iOS设备应用程序提供Push的服务器.如果iOS设备的应用程序是客户端的话,那么Provider可以理解为服务端(推送消息的发起者) APNs:Appl

  • 浅谈CSS不规则边框的生成方案

    需求背景,给不规则图形添加边框 在我们日常开发中,时长会遇到一些非矩形.非圆形的图案.类似下面这些: 使用纯 CSS,搭配一些技巧,是可以制作出上面的图形的,当然这只是需求的第一步. 紧接着,可能会有要给上述图形添加边框的诉求,这个时候,CSS 就很难办到了. 尝试使用 drop-shadow 添加边框 第一种方法,我们可以尝试使用 drop-shadow,给不规则的图形,添加一个外阴影. 我们以一个箭头图形为例使用 CSS 简单实现它的其中一种方式如下: <div class="arro

  • 浅谈IOS如何对app进行安全加固

    防止 tweak 依附 通常来说,我们要分析一个 app,最开始一般是砸壳, $ DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /path/to/XXX.app/XXX 然后将解密之后的二进制文件扔给类似 hopper 这样的反编译器处理.直接将没有砸壳的二进制文件扔个 hopper 反编译出来的内容是无法阅读的(被苹果加密了).所以说砸壳是破解分析 app 的第一步.对于这一步的防范,有两种方式. 1.限制二进制文件头内的段 通过在 Xcode 里面工程配

  • HTTP/2 协议用于 iOS 推送提醒服务 (APNS)

    苹果最近更新了他们的推送提醒服务协议,APNS.这个新版本的协议基于HTTP/2和JSON,相比于旧的二进制协议,新的协议有了巨大改进. 新的APNS协议基于HTTP/2: 新的特性和功能: 基于JSON的请求和响应 对于每个通知,如果成功响应,将会返回200标识 - 不用再去猜测通知是否被接收到 响应错误将会以JSON字符的形式返回 消息的长度从2048个字节增加到4096个字节 连接状态可以通过HTTP/2的ping框架来进行检查 支持主题 通用的推送证书 - 开发和生产使用同一个证书即可

  • 浅谈IOS屏幕刷新ADisplayLink

    什么是CADisplayLink 我们在应用中创建一个新的CADisplayLink对象,把它添加到一个runloop中,并给它提供一个target和selector在屏幕刷新的时候调用. 一但CADisplayLink以特定的模式注册到runloop之后,每当屏幕需要刷新的时候,runloop就会调用CADisplayLink绑定的target上的selector,这时target可以读到CADisplayLink的每次调用的时间戳,用来准备下一帧显示需要的数据.例如一个视频应用使用时间戳来计

  • 浅谈iOS开发中static变量的三大作用

    (1)先来介绍它的第一条也是最重要的一条:隐藏 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.为理解这句话,我举例来说明.我们要同时编译两个源文件,一个是a.c,另一个是main.c. 下面是a.c的内容 char a = 'A'; // global variable void msg() { printf("Hello\n"); } 下面是main.c的内容 int main(void) { extern char a; // extern v

  • 浅谈iOS应用中的相关正则及验证

    1.手机号码的验证正则 正则表达式: ^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$ 详细解释 解释: •^...$: ^:开始 $:结束 中间为要处理的字串 •(13[0-9]): 以13开头接下来一位为0-9之间的数 13 : 以13开头 [0-9]:分割语法,13后面是0-9之间的数 •| : 或(or), 将前后两个匹配条件进行or运算 • (15[^4\\D]) : 以15开头接下来一位是除4之外的0-9数字 15 : 以15开头 [^4\\D

随机推荐