iOS 开发 证书--根证书/申请证书/开发(发布)证书--详解

本文详细介绍了iOS开发证书的全过程,包括根证书Apple Worldwide Developer Relations Certification Authority,如何通过CSR(Certificate Signing Request)申请证书,以及开发证书和发布证书的用途和配置。在开发过程中,证书用于确保App的合法性和完整性,同时验证开发者身份,确保应用安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iOS 开发 证书–根证书/申请证书/证书助理/证书–详解

1.根证书: Apple Worldwide Developer Relations Certification Authority

iOS 以及 Mac OS X 系统(在安装 Xcode 时)将自动安装 AppleWWDRCA.cer 这个中间证书(Intermediate Certificates),它实际上就是 iOS(开发)证书的证书,即根证书(Apple Root Certificate)。

AppleWWDRCA(Apple Root CA)类似注册管理户籍的公安机关户政管理机构,AppleWWDRCA.cer 之于 iOS(开发)证书则好比户籍证之于身份证。

无论是开发证书还是生产证书,都必须从根证书上派生。根证书就是根mac产生的证书,menber center上保存的那个证书就是根证书,它只能安装在创建它的那台mac上,其他的开发mac必须从那台根mac上导出证书使用。也就是所有的子证书都只能从根证书派生而来。
这里写图片描述

2.申请证书(CSR:Certificate Signing Request)

可以在缺少证书时通过 Xcode Fix Issue 自动请求证书,但是这会掩盖其中的具体流程细节。这里通过 Keychain 证书助理从证书颁发机构请求证书:填写开发账号邮件和常用名称,勾选【存储到磁盘】。
这里写图片描述

Keychain Access(钥匙串访问)/Keys(密钥) 中将新增一对非对称密钥对 Public/Private Key Pair(公钥和私钥)。同时,keychain(钥匙串) 将生成一个包含开发者身份信息和公钥的CSR(Certificate Signing Request)文件——CertificateSigningRequest.certSigningRequest。
这里写图片描述

私钥 private key 始终保存在 Mac OS 的 Keychain Access 中,用于签名(CodeSign)本机对外发布的 App;公钥 public key 一般随证书(随Provisioning Profile,随App)散布出去,对 App 签名进行校验认证。用户必须妥善保存本地 Keychain 中的 private key,以防伪冒。

在 Apple 开发网站上传包含公钥的 CSR 文件作为换取证书的凭证(Upload CSR file to generate your certificate)
这里写图片描述

Apple 证书颁发机构 WWDRCA(Apple Worldwide Developer Relations Certification Authority) 将使用其 private key 对 CSR 中的 public key 和一些身份信息进行加密签名生成数字证书(ios_development.cer)并记录在案(Apple Member Center)
这里写图片描述

从 Apple Member Center 网站下载证书到 Mac 上双击即可安装(当然也可在 Xcode 中添加开发账号自动同步证书和[生成]配置文件)。证书安装成功后,在 KeychainAccess|Keys 中展开创建 CSR 时生成的 Key Pair 中的私钥前面的箭头,可以查看到包含其对应公钥的证书(Your requested certificate will be the public half of the key pair.);在 Keychain Access|Certificates 中展开安装的证书(ios_development.cer)前面的箭头,可以看到其对应的私钥。
这里写图片描述

Certificate 应被配置到【Xcode Target|Build Settings|Code Signing|Code Signing Identity】下,下拉选择 Identities from Profile “…”(一般先配置 Provisioning Profile)。以下是 Xcode 配置示例:
这里写图片描述

3.开发/发布证书

iOS 证书是用来证明 iOS App 内容(bundle with executable and resources)的合法性和完整性的数字证书。对于想安装到真机或发布到 AppStore 的应用程序(App),只有经过签名验证(Signature Validated)才能确保来源可信,并且保证 App 内容是完整、未经篡改的。

它的作用就是证明你的mac具有开发或发布某个开发者账号下应用的权限。而且证书还分成两种,一种是开发证书,也叫Development certificate; 另一种是发布证书或叫生产证书,英文名叫Production certificate。

development certificate:开发证书是证明你的mac具有开发和真机调试你的程序的东西。但是每个证书关联着一个开发者账号,也就是说,你只能使用这个证书开发这个账号底下的应用,它是通过bundle id来知道该应用是不是属于自己的账号。所以,每次为一个开发者帐号开发应用,就得需要这个账号创建的开发证书。

Production certificate:生产证书是证明你的mac是否具有发布应用的权限。在archive到appstore的时候,必须有生产证书,否则时上传不成功的。

1. 众所周知,我们申请一个Certificate之前,需要先申请一个Certificate Signing Request (CSR) 文件,

2. 这个过程中实际上是生成了一对公钥和私钥,保存在你Mac的Keychain中。代码签名正是使用这种基于非对称秘钥的加密方式,用私钥进行签名,用公钥进行验证。

3. 在你Mac的keychain的login中存储着相关的公钥和私钥,而证书中包含了公钥。你只能用私钥来进行签名,所以如果没有了私钥,就意味着你不能进行签名了,所以就无法使用这个证书了,此时你只能revoke之前的证书再申请一个。

4. 因此在申请完证书时,最好导出并保存好你的私钥。当你想与其他人或其他设备共享证书时,把私钥传给它就可以了。私钥保存在你的Mac中,而苹果生成的Certificate中包含了公钥。当你用自己的私钥对代码签名后,苹果就可以用证书中的公钥来进行验证,确保是你对代码进行了签名,而不是别人冒充你,同时也确保代码的完整性等。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值