从零开始创建iOS远程推送证书

作者: 戴维营教育 | 来源:发表于2016-04-08 17:32 被阅读4392次

    从零开始手把手教你创建AppID和对应的远程推送证书.

    第一步

    登录Apple Developer后台,左侧选择AppIDs,开始新建AppID.


    点击右上方的➕号图标新建AppID

    第二步

    • 在App ID Description栏输入自己的对该ID的描述信息.相当于取个名字而已.
    • App ID Prefix选择你开发者账号对应的TeamID选项值.
    • App ID Suffix可以是明确指定的AppID值也可以是通配符的值,一般如果用于某一个App的话,我们设置为确定值的一个ID,在Bundle ID那一栏输入一个反域名格式的字符串作为我们的App ID的一部分. 这个地方应该和Xcode项目中的BundleID设置值一致.
    • App Services 这里勾选你的App所需要的一些功能(按需勾选).


      设置App ID的详细配置信息

    第三步

    设置完后继续,进入到确认界面, 确认无误后点击Register进行注册.

    App ID的信息以及所需服务的确认

    第四步

    上一步确认无误注册成功之后的信息一览表:


    App ID注册新建成功,信息一览无余.

    第五步

    App注册新建成功后,我们就可以在App IDs列表中查看到.
    如图,刚刚注册的App ID的name是TeachDemo,ID是com.diveinedu.teachdemo

    App ID列表中找到刚刚注册的App ID

    第六步

    双击App ID的name可以展开查看该AppID的详细信息,点击Edit还可以再次编辑.

    在AppID列表中展开某个AppID的具体信息

    第七步

    上一步点击Edit进入再次编辑界面,可以对该AppID进行详细的服务功能设置.找到Push Notification并阅读理解关于推送消息的资料.
    选择对应需要的证书进行创建.

    根据需要,选择开发版或者生产版的推送证书进行创建

    第八步

    不管上面一步是选择开发版还是生产版的推送证书创建,都会到样一个界面,该界面详细告诉我们如何去自己电脑创建一个证书签名请求文件.


    证书签名请求文件创建步骤指引

    第九步

    根据上一图中的步骤指引,打开OS X系统上的钥匙串访问程序,在菜单中,找到证书助理-->从证书颁发机构请求证书....

    选择钥匙串访问菜单准备创建证书签名请求

    第十步

    • 先填写证书签名请求的信息,邮件地址填写自己的邮件地址,如果可以,强烈建议写你的开发者账号对应的邮件地址,常用名称可以写你对应AppID应用的名字以用来做区别.
    • 我们需要把该签名请求信息保存到文件,故勾选请求类型是存储到磁盘.
    填写邮件地址和常用名称

    第十一步

    信息填写配置完毕后,点击存储,就会弹出对话框让你输入保存的文件名和文件的保存位置.这个根据自己确定文件名和位置.只要在后面步骤能够记得位置,找的到该文件就OK.

    设置文件名和保存位置

    第十二步

    点击存储,正式把文件存储到本地磁盘中.


    证书签名请求文件保存成功

    第十三步

    • 这时候,切换回到之前打开开发者后台的浏览器页面,在第八步的位置点击继续,将会进到此页面.
    • 打开并选择刚刚那个文件.


      选择证书签名请求文件

    第十四步

    然后,点击继续,上传证书签名请求文件


    正式上传

    第十五步

    • 上传完成之后,苹果开发者后台服务器就会为我们签名并创建一个用于远程推送的证书文件.
    • 我们只需要点击下载按钮就可以把证书文件(这里是开发版)下载回来.


      下载生成成功的推送证书文件

    第十六步

    浏览器点击下载后一般下载保存在用户目录下的Download子目录下,可以把该文件移动到合适的其他目录下,

    • 我们查看证书名是aps_development.cer,从文件名可以看出这个开发版的推送证书.
    • 如果是生成版的推送证书的话,文件名是aps_production.cer.
      看看开发版的推送证书文件

    第十七步

    双击下载回来的推送证书文件,一般会自动用钥匙串访问程序打开,并弹出添加证书到当前系统的界面.你直接点击添加就可以.(由于权限原因,点击添加后可能会询问你当前用户的密码)


    双击证书文件进行添加

    第十八步

    添加到系统钥匙串中后,我们可以在列表中看到刚刚那个证书的信息,展开后我们还可以看到里面包含着一个专用密钥,该密钥就是用来和苹果推送服务器进行安全链接的.


    找到刚刚加入系统钥匙串中的证书

    第十九步

    选择该证书,右键,选择 导出xxxxx, 准备从系统钥匙串中导出证书(内含私钥)到p12格式文件.


    准备导出远程推送证书

    第二十步

    填写导出后的文件名以及存储位置,注意下面的文件格式务必为个人信息交换(.p12)格式.


    把证书从钥匙串访问程序中导出为p12文件

    第二十一步

    确定存储进行导出后,系统为了安全起见,还可以对该p12文件设置一个密码进行保护,以后读取这个p12文件信息的时候都需要验证该密码.


    设置p12文件的保护密码

    第二十二步

    设置p12文件保护密码后点击存储,就这样,导出成功结束.
    到这里,导出的这个aps_development.p12文件就是我们所需要传到第三方推送服务商后台的推送证书文件.

    成功导出了p12格式的远程推送证书文件

    后记

    此教程是为了戴维营教育iOS开发全栈课程内容中的Swift开发后台推送服务器做前提准备.

    对应生成版的推送证书也是同样的步骤,唯一的不同就是在 第七步 选择创建生产版还是开发版的推送证书.

    我们生成的开发版推送证书只能用开发测试过程中的真机测试推送业务.
    如果App上架了,那么应该配置生产版的推送证书并上传至第三方推送服务商后台.

    如果没有使用第三方推送服务商的免费服务.而是开发者自己或者公司团队自己开发的推送后台.那么我们可以根据情况处理一下我们下载的推送证书以及生成的p12格式的文件,转换为PEM格式的文件给自己的后台程序的OpenSSL的API进行使用.

    我们下载的推送证书默认的名字一般就是
    aps_production.cer或者aps_development.cer,
    那么不管是开发版还是生产版,
    这里我把要处理的证书文件名用cert.cer代替.
    然后为其导出的p12文件名用key.p12代替.

    可以用下面的openssl命令进行转换为pem格式:

    $ openssl x509 -in cert.cer -inform DER -outform PEM -out cert.pem
    $ openssl pkcs12 -in key.p12 -out key.pem -nodes
    

    然后可以继续测试这些证书是否可以成功用来链接苹果的推送服务器.

    • production(生产版)
    $ openssl s_client -connect gateway.push.apple.com:2195 -cert cert.pem -key key.pem 
    
    • sandbox(开发版)
    $ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert cert.pem -key key.pem 
    

    相关文章

      网友评论

      • 心语风尚:两个 pem 把哪个给公司服务器后台
      • eb9d6356739f:详细的写清楚了每一个步奏,帮了一个大忙,必须手动点赞:+1:
      • Joe_lisa:不是有两个证书,一个开发证书,一个发布证书吗,你这边没有阐述哦
      • LD_左岸:由于我现在 更新的版本中加入了推送功能 那么我必然要去开发者后台生成一个推送证书 我是不是只需要 在Appid下面 编辑 打开推送功能选项 然后Create Centificate 创建推送发布证书 然后导出该发布证书为p12文件 上传第三方后台(极光推送)就OK了
        关于 发布证书和描述文件 因为1.0就配置好了 之后几次版本更新也没动过 但是这次加入了push功能的本次更新发布需要有所更改吗

      本文标题:从零开始创建iOS远程推送证书

      本文链接:https://www.haomeiwen.com/subject/lhmvlttx.html