14.iOS证书详解

首先我们先来分析一下,将app装到手机里面或者上传到AppStore需要的证书

14.iOS证书详解_第1张图片
屏幕快照 2017-08-09 12.51.31.png
  • 一般选择Automatically manage signing这个选项,Xcode会自己创建和更新相关的配置,这里为了让大家看的更清楚配置的信息,我选择手动配置这些。
  • 如图你需要 Provisioning Profile配置文件,开发者账号,和开发证书(签名证书),这3者必须是配套使用的。

OK,我们首先了解一下数字证书的概念:

  • 数字证书是由证书授权中心发行的,人们可以在网上用它来识别对方的身份。
  • 数字证书是一个经证书授权中心签名的包含公开密钥拥有者信息以及公开密钥的文件。简单的证书包含一个公开密钥,名称以及证书授权中心的数字签名。
  • 数字证书具有时效性,过期失效。

iOS证书(签名证书)的概念和用处

  • iOS证书是用来证明iOS App的内容的合法性和完整性的证书。App想要安装到手机或者发布到AppStore的应用程序,必须经过签名认证才能确保来源可信。
  • iOS证书分为Development 和Product(Distribution)。一个在调试的时候使用,一个在发布的时候使用,下载的时候只要在苹果开发者账号里面选择对应的就可以了。

iOS证书颁发机构是什么?

  • 在安装Xcode的时候,系统将会自动安装AppleWWDRCA.cer这个中间证书,它就是 iOS(开发)证书的根证书。
  • AppleWWDRCA相当于户籍科,AppleWWDRCA.cer就相当于身份证。
  • 如果你的mac没有这个证书或者失效了,请自行百度安装。

注:申请 iOS开发证书就相当于为app申请一个证明这个app合法身份的一个身份证书。

接下来我们开始申请证书:

  • 1.直接通过Keychain证书助理从证书颁发机构请求证书:
14.iOS证书详解_第2张图片
屏幕快照 2017-08-09 11.22.35.png
14.iOS证书详解_第3张图片
屏幕快照 2017-08-09 10.54.13.png
  • 这个生成的文件是CSR文件,这个文件包含开发者身份信息,同时在生成CSR文件时电脑里面的Keychain Access|key里面将会新增一对Public/Private Key Pair。

  • Private Key:一直保存在Mac OS的Keychain Acess中,用于签名对外发布的App。(p12文件中)

  • Public Key:一般随着证书(随着Provisioning Profile,app)对外公布,对App签名进行校验认证。用户必须保护好本地的Private Key,以防伪冒。(CSR文件中)

  • 如何导出导出p12文件?当你生成的证书(Certificates)需要在别的电脑使用的时候,即不是生成CSR文件的电脑的时候,需要将p12文件和证书一起传到别的电脑使用。

14.iOS证书详解_第4张图片
屏幕快照 2017-08-09 12.16.16.png
14.iOS证书详解_第5张图片
屏幕快照 2017-08-09 10.26.13.png

生成Certificates开发证书:

  • 登陆开发者网站,利用上一步申请的CSR文件生成Certificates开发证书。这个证书即是app中需要使用的签名证书。
14.iOS证书详解_第6张图片
屏幕快照 2017-08-09 12.32.47.png
14.iOS证书详解_第7张图片
屏幕快照 2017-08-09 12.36.58.png
  • 下载证书,然后双击证书安装到你的钥匙串中,确保保存了你的公钥和私钥的备份的安全。

签名证书讲完了,下面来了解一下Provisioning Profile配置文件

  • 配置文件由3部分组成:证书,AppID和设备。
    • 证书:Xcode决定用哪个证书(公钥/私钥)来签署应用程序;
    • AppID:ProductID,用于标示一个或者一组app。
    • 设备:app支持哪些设备使用。

Provisioning Profile决定了Xcode决定用哪个证书(公钥/私钥)来签署应用程序,将应用程序打包时嵌入到.ipa包里。安装应用程序时,Provisioning Profile将被拷贝到iOS设备中,运行iOS的设备也通过它来认证安装的程序。

打包或者在真机上运行一个app的过程:
  • 首先,需要指明它的 App ID,并且验证Bundle ID是否一致;
  • 其次。需要对证书对应的私钥来进行签名,用于标识这个APP是否合法,安全,完整的;
  • 然后,如果是真机测试,需要确认这台设备是否授权该app。

Provisioning Profile将这些信息全部打包到一起,方便我们在调试和发布的时候使用。这样只要在不同的情况下选择不同的Provisioning Profile文件就可以了。
Provisioning Profile也分为2类,Development 和Product(Distribution),有效期和Certificates一样。

最后我们来了解一下证书和签名到底是怎样保证安全可靠性?

14.iOS证书详解_第8张图片
屏幕快照 2017-08-09 13.40.04.png
14.iOS证书详解_第9张图片
屏幕快照 2017-08-09 13.46.23.png
  • Xcode中的Code Signing Identity(entitlementb certificate)和 Provisioning Profile匹配,并且配置的Certificate必须在本机的Keychain Acess中存在对应的Public/Private Key Pair,否则编译会报错。

你可能感兴趣的:(14.iOS证书详解)