美文网首页
为什么要创建证书

为什么要创建证书

作者: 淇滨杜隆坦 | 来源:发表于2016-06-10 11:51 被阅读60次

一、代码签名需要

  • 代码签名的目的是让 iOS 系统对将要运行在其上的 APP 放心。

二、iOS 操作系统验证开发者身份和 APP 完整性

  • 只要 iOS 操作系统拿到手中的证书的确是 CA 颁发的,那么证书中的公钥就一定是开发者的公钥。iOS 操作系统通过证书来验证开发者身份。通过用开发者的公钥对代码进行解签名,验证 APP 完整性。
  • 创建证书的目的就是让借助 CA 来让 iOS 操作系统拿到真正的开发者的公钥,以此去对代码进行解签名。

关于数字签名:

  • CA 对保存有开发者公钥的证书签名的目的:让 iOS 系统知道自己拿到的公钥是真实开发者的公钥
  • 开发者对代码签名的目的: 然 iOS 系统对将要运行在其上的 APP 放心。

代码签名:

  • 代码签名需要:证书+私钥,缺一不可
  • xcode将使用证书文件和对应的私钥给代码签名。
  • 在 xcode 的 code signing identity 当中导入相关证书后
  • xcode 还会去mac 电脑中寻找证书中公钥对应的私钥
  • 然后 xcode 来为代码进行签名
下面解释一下证书为什么要被 CA 签名,代码为什么要被开发者签名:
  1. 在 iOS 系统以及其它 Mac 设备内部,都拥有苹果的根证书 AppleWWDRCA.cer,里面包含了 AppleWWDRCA的公钥。
  2. iOS 系统用AppleWWDRCA的公钥对证书(.cer)中包含的数字签名(该签名是AppleWWDRCA用自己的私钥对证书签名的)进行解密,如果成功得到信息摘要 Signature1(经过 AppleWWDRCA使用私钥加密过的),则说明了证书的可信性。
  3. 然后对证书内容使用证书声明的哈希算法,计算出一个信息摘要 Signature2。
  4. 如果 Signature1 == Signature2,则说了明证书的完整性。
  5. 即 CA 用自己的私钥对证书签名的目的就是为了保证 iOS 系统拿到手中的是CA 自己颁发的权威证书,保证别人不能冒充 CA。
  6. iOS 系统用 CA 公钥解开证书上 CA 的私钥签名后,对照摘要一致后,就能确定这个证书就是 CA 颁发的。
  7. 数字签名的目的是保证通信双方没有被冒充。
  8. CA 签名是让 iOS 系统知道这个证书是 CA 颁发的
  9. 代码签名是让 iOS 系统知道这个 APP 的确是合法开发者编写的
  10. 在证书可信的前提下,iOS 系统成功提取出证书中包含的用户的真实公钥 Public Key。这个公钥就可以用于检验代码签名,或者用于加密通信。
  11. 用真实的用户公钥对 CodeSignature 里面所有代码/资源签名进行解密,得到一系列信息摘要 Signature-a1、Signature-b1、Signature-c1 etc.
  12. 假如所有信息摘要都正确被机密出来,则表明代码、资源文件是可信的,是完整的,能够合法地在该设备上运行。

相关文章

  • 为什么要创建证书

    一、代码签名需要 代码签名的目的是让 iOS 系统对将要运行在其上的 APP 放心。 二、iOS 操作系统验证开发...

  • 真机调试&帐号续费&打包测试&&审核上线发布笔记

    为什么要真机调试? 帐号类型? 限制电脑 上传CSR文件创建开发证书、发布证书即是限制了电脑,只有两台电脑可以创建...

  • iOS创建证书

    首先创建证书 证书只能有一个,如果要多人使用,创建证书的人要把它导出成P.12格式 //这是要创建本地证书!!!需...

  • cfssl

    下载 创建CA 创建证书请求 生成CA证书和私钥 创建kubernetes证书请求文件 kubernetes证书和...

  • Xcode 8 Alcatraz安装

    关闭Xcode 创建证书并签名 选择 【钥匙串访问】->【证书助理】-> 【创建证书】,如下图创建证书。 安装Al...

  • 打包生成二维码

    企业账号 1.创建in house证书,如果是灰色的不能创建就问别人要p12文件或者删除创建过得证书,重新制作 2...

  • 创建自签证书步骤

    根证书创建 创建证书并使用根证书签发 使用 Openssl 工具查看证书信息

  • 关于证书和描述文件

    一、关于证书和描述文件 1、创建推送证书(调试和上传的区别) 提示要先注册有push服务的appid2、创建对应有...

  • MySQL启用SSL连接

    1.手动创建自认证证书 1.1 创建CA证书 1.2 创建服务端证书,去除加密,使用CA签名 1.3 创建客户端证...

  • 局域网通过 itms-services(https) 协议安装

    1. 创建 CA 根证书 CA 是证书名字,自己改 2. 基于上边的 CA 证书,再创建证书 mycert 是证书...

网友评论

      本文标题:为什么要创建证书

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