美文网首页
iOS 证书小结

iOS 证书小结

作者: sovran | 来源:发表于2018-12-02 10:16 被阅读0次

    iOS 证书小结

    iOS开发需要开发者账号,如果要发布app还需要申请对应的证书。证书就是用来对app包进行加密, 然后苹果通过对app包校验,来保证安装的应用的确是你发布的,没有被篡改过。 同时,苹果还在中间添加了一些小伎俩, 通过证书里面的配置文件,控制不同类型证书的用途及适用的设备,从而通过此来收取开发者费用。

    证书相关的流程

    • 开发者本地生成certSigningRequest文件,在这个过程中,苹果会生成一对公钥与私钥, 在certSigningRequest中会包含公钥,私钥保存在本地机器中, 可以通过keychain看到
    • 开发者到苹果开发者网站申请证书, .cer证书(分为开发和分发等类型) - 安装这个证书后,然后安装对应的私钥后 本地相当于登录了这个账号,可以进行对应的操作
    • 创建AppId, 主要是用于后面创建对应的mobileProfile
    • 配置Provisioning Profiles文件, 选择对应的AppId, 还有类型。 如果是开发证书,还可以选择设备列表
    • 开发者下载Provisioning Profiles文件, 打包的时候就可以选择对应的证书了。

    各个证书的作用

    cer证书

    • 开发证书用于真机调试
    • 发布证书用于打包发布
    • 推送证书,对应上述的证书分别对应开发环境和正式环境的推送

    mobileprovision文件

    可以称为pp文件, 包含appId、开发者正式、硬件id。 添加到xcode上,主要描述这个app的信息及调试相关的东西。 pp文件和app是一对一的关系, cer证书可以一对多。

    p12证书

    这个是私钥, 钥匙用某个开发者账号的证书,需要安装对应的私钥。 私钥就是用来对程序进行加密的。

    有证书、私钥和pp文件就可以进行签名了。

    证书加解密流程

    • 我们创建了certSigningRequest, 生成了用户的公钥与私钥。certSigningRequest里含有公钥信息, 私钥在本地
    • 通过上传certSigningRequest到苹果开发者网站,创建cer证书。
    • 在开发者网站上创建AppId, 开启对应的功能, 生成mobileprovision文件, mobileprovision文件是苹果使用自己的私钥进行加密的, 包含了用户的公钥、appId、调试设备id、对应app的功能等
    • 本地安装cer证书,会自动匹配到用户的私钥,如果是其它开发者,还需要申请人导出本地的私钥p12文件 进行安装
    • 打包的时候, 需要选择mobileprovision文件、cer证书, 进行打包, 这里会把mobileprovision文件和app的文件通过用户私钥进行加密。
    • iOS设备安装了app, 首先通过苹果的公钥验证mobileprovision文件是否合法,然后使用mobileprovision文件里的用户公钥验证app的签名。如果是开发证书, iOS设备还会根据mobileprovision文件内的设备id验证是否能在本机安装。

    证书加密验证完整流程


    cer_flow.jpg

    相关文章

      网友评论

          本文标题:iOS 证书小结

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