iOS推送证书制作

作者: 修_远 | 来源:发表于2017-12-02 15:45 被阅读48次

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

    2. 推送证书的制作

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

      钥匙串访问.png
      填上你的邮箱和常用名 或者是公司关联账号,常用名要记一下,一会
      会用到。
      保存CSR文件1.png
      然后选择保存到磁盘,继续
      1保存CSR文件2.png
      这时桌面上会有一个CertificateSigningRequest.certSigningRequest的请求文件,也就是我们说的CSR文件。在我们生成CSR文件的同时,会在钥匙串访问中生成一对秘钥,名称为刚才我们填写的常用名。当然,在实际开发中,我们需要把这些证书文件放在自己分类的文件夹中。
    2. 下载开发证书和发布证书
      苹果开发者中心 登录后,在右侧的ios Developer Program里点击iOS Provisioning Portal。
      进入下一级页面后在左侧选择Certificates

      证书界面.png
      创建证书1.png
      创建证书2.png
      创建证书3.png
      创建证书4.png
    3. 注册项目的Bundle ID

      注册Bundle ID_1.png
      注册Bundle ID_2.png
      注册Bundle ID_3.png
      选择Bundle ID.png
      注册Bundle ID_4.png
    4. 创建测试证书和生产证书

      创建测试证书和生产证书.png
      选择CSR文件1.png
      选择CSR文件2.png
      选择CSR文件3.png
      创建测试证书成功.png
    5. 导出.p12证书

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


      导出证书1.png
      导出证书2.png

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

    2.2 VoIP推送证书

    voip_center.png.jpeg

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

    2.3 配置证书

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

    证书文件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文件一般就是服务器用来推送的。

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


    证书文件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推送证书制作

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