iOS推送证书制作

对于APNS证书,要分别制作开发证书和生产证书,不同环境下使用不同的证书,但是对于VoIP证书只有一个,不过在服务端连接通知服务器的时候还是需要区分环境的。

2. 推送证书的制作

  1. 准备CSR文件
    首先我们要有生成一个Certificate Signing Request(也就是CSR)的请求文件。
    在应用程序里的使用工具中找到钥匙串访问。

    iOS推送证书制作_第1张图片
    钥匙串访问.png

    填上你的邮箱和常用名 或者是公司关联账号,常用名要记一下,一会
    会用到。
    iOS推送证书制作_第2张图片
    保存CSR文件1.png

    然后选择保存到磁盘,继续
    iOS推送证书制作_第3张图片
    1保存CSR文件2.png

    这时桌面上会有一个CertificateSigningRequest.certSigningRequest的请求文件,也就是我们说的CSR文件。在我们生成CSR文件的同时,会在钥匙串访问中生成一对秘钥,名称为刚才我们填写的常用名。当然,在实际开发中,我们需要把这些证书文件放在自己分类的文件夹中。

  2. 下载开发证书和发布证书
    到苹果开发者中心 登录后,在右侧的ios Developer Program里点击iOS Provisioning Portal。
    进入下一级页面后在左侧选择Certificates

    iOS推送证书制作_第4张图片
    证书界面.png

    iOS推送证书制作_第5张图片
    创建证书1.png

    iOS推送证书制作_第6张图片
    创建证书2.png

    iOS推送证书制作_第7张图片
    创建证书3.png

    iOS推送证书制作_第8张图片
    创建证书4.png

  3. 注册项目的Bundle ID

    iOS推送证书制作_第9张图片
    注册Bundle ID_1.png

    iOS推送证书制作_第10张图片
    注册Bundle ID_2.png

    iOS推送证书制作_第11张图片
    注册Bundle ID_3.png

    iOS推送证书制作_第12张图片
    选择Bundle ID.png

    iOS推送证书制作_第13张图片
    注册Bundle ID_4.png

  4. 创建测试证书和生产证书

    iOS推送证书制作_第14张图片
    创建测试证书和生产证书.png

    iOS推送证书制作_第15张图片
    选择CSR文件1.png

    iOS推送证书制作_第16张图片
    选择CSR文件2.png

    iOS推送证书制作_第17张图片
    选择CSR文件3.png

    iOS推送证书制作_第18张图片
    创建测试证书成功.png

  5. 导出.p12证书

  • 点击下载下来去,下载下来后会是一个. cer文件
  • 双击文件,(因为你需要生成一个.p12文件才能用)
  • 导出证书


    iOS推送证书制作_第19张图片
    导出证书1.png

    iOS推送证书制作_第20张图片
    导出证书2.png

同样的方法可以得到开发推送证书,到这里APNS推送证书就都下载好了。如果是用的信鸽的推送平台,则信鸽中会知道你如果去配置信鸽需要的推送证书的链接,信鸽平台中需要的是.pem证书,极光推送中需要上传.p12证书,可能就是这里的问题导致项目在集成信鸽推送之后再单独集成VoIP会导致VoIP消息发送失败的问题。

2.2 VoIP推送证书

iOS推送证书制作_第21张图片
voip_center.png.jpeg

VoIP证书的制作过程和APNS推送证书的制作过程雷同,只不过不需要区分开发环境和生产环境,一个bundle ID只需要创建一个VoIP证书。
【tips】如果是先创建的开发证书和发布证书,然后再去创建推送证书,建议在将推送证书创建成功之后就更新一次开发证书和发布证书,避免推送收不到然后又查不出问题。

2.3 配置证书

到这里的时候就应该是6个证书了,三个从开发者中心下载的证书,还有三个.p12证书

iOS推送证书制作_第22张图片
证书文件1.png

  • 制作.pem格式证书
    创建VoIP证书为例
    1. 目前我们有两个文件,voip_services.cer SSL证书和voip_push.p12私钥
    2. 把.cer的SSL证书转换为.pem文件,打开终端命令行cd到证书文件夹、执行以下命令
      openssl x509 -in voip_services.cer -inform der -out voip_cert.pem
    3. 把.p12私钥转换成.pem文件,执行以下命令(这里需要输入之前导出设置的密码)
      openssl pkcs12 -nocerts -out voip_key.pem -in voip_push.p12
    4. 再把生成的两个.pem整合到一个.pem文件中
      cat voip_cert.pem voip_key.pem > voip_ck.pem
      最终生成的voip_ck.pem文件一般就是服务器用来推送的。

同样的步骤可以创建另外两个证书,创建完成之后的文件夹中应该有:


iOS推送证书制作_第23张图片
证书文件2.png

我们需要的所有推送文件都在这里面了
比如信鸽推送需要上传 push_key_dev.pempush_key_dis.pem 证书
极光中需要上传 push_cert_dev.p12push_cert_dis.p12 证书
如果是网易云中有需要使用VoIP功能的,则还需要上传我们做好的 voip_ck.pem 证书

集成VoIP推送看似是简单,但其中会遇到各种坑,如果每次出现问题都要服务器配合测试的话,很难找到问题的根源,而且还浪费时间,所以最好是自己搭建一个简单的测试环境先测试通,然后再与服务器对接。后面会提供服务端源码和一个很牛逼的推送测试工具pusher。这个时候需要用到的推送证书就是

  • push_key_dev.pem 测试环境APNS推送证书
  • push_key_dis.pem 生产环境APNS推送证书
  • voip_ck.pem VoIP推送证书

你可能感兴趣的:(iOS推送证书制作)