iOS劝退指南IOS开发者学习笔记iOS开发

iOS 各种证书及描述文件过期或revoke的影响

2018-03-19  本文已影响280人  空空小僧

2018.04.19新增,现在找到了官方网站信息


此处官方文档:
地址: https://developer.apple.com/cn/support/certificates/

证书到期或被撤销

注:Apple 拥有随时撤销数字证书的决定权。如需更多信息,请阅读开发者网站上您的帐户 (英文) 中的 Apple Developer Program 许可协议。

证书被盗用

如果您怀疑您的 Pass Type ID 证书或 Developer ID 证书和私钥已被盗用,并希望提出申请来撤销证书,请发送电子邮件至 product-security@apple.com。您可以在开发者网站上登录自己的帐户 (英文) 来申请其他证书,以便继续开发和分发 Pass。

我收到这样一条错误信息:“Xcode could not find a valid private-key/certificate pair for this profile in your keychain. (Xcode 无法在您的钥匙串中找到适用于此描述文件的有效私钥/证书配对)”。

这个错误信息表明,系统的钥匙串中缺少您用于对 app 进行签名的证书公钥或私钥。

如果您尝试对 app 进行签名和构建所用的系统并非原本用于申请代码签名证书的系统,通常会发生这个错误。如果证书到期或被撤销,也同样会发生这个错误。请确保 app 的描述文件包含有效的代码签名证书,而且系统的钥匙串中包含该证书、最初用于生成该证书的私钥以及 WWDR Intermediate Certificate。

有关如何解决这个错误的说明,请查阅代码签名支持页面

如果我的 Apple Developer Program 会员资格到期,使用我的 Developer ID 签名的 app 会出现什么情况?

如果您的会员资格到期,用户仍然可以下载、安装和运行使用您的 Developer ID 签名的 app。但是,在您的 Developer ID 证书到期后,您必须成为 Apple Developer Program 会员才能获取新的 Developer ID 证书,以便为更新和新的 app 签名。


我自己整理的

iOS开发中,大概会产生以下几种常见的证书(暂时知道这些证书)

对于每一种证书的作用及过期或者revoke的影响,我个人整理了一下,个人理解,如有错误或者异议,可以沟通,互相学习,谢谢,在介绍之前,先引用一下苹果的证书校验的方式:

Certificate validation

The first time a user opens an app, the distribution certificate is validated by contacting Apple’s OCSP server. Unless the certificate has been revoked, the app is allowed to run. Inability to contact or get a response from the OCSP server isn’t interpreted as a revocation. To verify the status, the device must be able to reach ocsp.apple.com. See Network configuration requirements.

The OCSP response is cached on the device for the period of time specified by the OCSP server—currently, between 3 and 7 days. The validity of the certificate isn’t checked again until the device has restarted and the cached response has expired. If a revocation is received at that time, the app is prevented from running. Revoking a distribution certificate invalidates all of the apps you’ve distributed.

An app won’t run if the distribution certificate has expired. Currently, distribution certificates are valid for one year. A few weeks before your certificate expires, request a new distribution certificate from the iOS Dev Center, use it to create new distribution provisioning profiles, and then recompile and distribute the updated apps to your users. See Providing updated apps.

个人欧路词典翻译:


证书验证

用户第一次打开应用程序时,会通过联系Apple的OCSP服务器来验证分发证书。除非证书已被撤销,否则应用程序将被允许运行。
无法联系或获得OCSP服务器的响应不被解释为撤销。
要验证状态,设备必须能够访问ocsp.apple.com。
请参阅网络配置要求。

OCSP响应在OCSP服务器指定的时间段内缓存在设备上,
***当前为3到7天。直到设备重新启动并且缓存的响应已过期,才会再次检查证书的有效性。***
如果当时收到吊销,应用程序将无法运行。撤销分发证书会使您分发的所有应用程序失效。

如果分发证书过期,应用程序将不会运行。目前,分销证书有效期为一年。证书过期前几周,
请从iOS开发人员中心申请新的分发证书,使用它创建新的分发配置配置文件,然后重新编译并将更新后的应用分发给用户。
请参阅提供更新的应用

开发证书和发布证书:

此证书基本上可以理解为我们开发权限的最重要的证书,一旦此证书过期或者被销毁,(不考虑使用相同CSR文件的情况),此开发者名下的所有app都会受到影响,具体为:

  1. 企业账号 :
    名下所有app都无法打开,打开及闪退,受此影响,推送证书及描述文件均失效
  2. 公司/个人账号 :
    在苹果商店下载安装的app不受影响(无论是过期还是Revoke,甚至是开发者账号被注销,因为这个时候,对于app的签名,是通过苹果私钥直接签名的,没有使用开发者名下的私钥签名),开发者开发模式下的app无法打开及闪退,测试的推送证书失效

推送证书

推送证书过期 :
由于证书过期之后,私钥签名之后,苹果解密之后,发现证书过期无效,证书无法与苹果服务器通信,因此推送证书过期之后,无法使用此证书再次发生推送
推送证书被Revoke :
虽然证书被Revoke,推送功能将无法使用,无法连接苹果服务器(因为生成推送证书的时候,需要生成CSR,里面包含公私钥,我们如果立刻revoke,然后立刻去试的话 是生效的,可能需要苹果同步,第二天将无法使用,提示证书错误,)由此影响的关联的描述文件,如果之前下载的,那么是有效的,如果是在revoke之后下载,将是无效的

描述文件

  1. 企业账号 :
    如果是过期,名下所有app都无法打开,打开及闪退,有时不会立刻就反应过来,因为苹果有缓存,可以看上面的证书介绍

  2. 公司/个人账号 :
    在苹果商店下载安装的app不受影响(无论是过期还是Revoke,甚至是开发者账号被注销,因为这个时候,对于app的签名,是通过苹果私钥直接签名的,没有使用开发者名下的私钥签名),开发者开发模式下的app无法打开及闪退,测试的推送证书失效

MDM证书

只有企业账户才能申请此证书;一旦过期应该根据由此证书签名的所有的第三方证书(比如APSP证书等) 全部无效,Revoke之后应该是和推送证书是一样的,需要再确认一下

上一篇下一篇

猜你喜欢

热点阅读