iOS 各种证书及描述文件过期或revoke的影响
2018.04.19新增,现在找到了官方网站信息
此处官方文档:
地址: https://developer.apple.com/cn/support/certificates/
证书到期或被撤销
-
Apple Push Notification Service 证书
您无法再向您的 app 发送推送通知。 -
Apple Pay Payment Processing 证书
您的 app 和网站将无法使用 Apple Pay 进行交易。 -
Apple Pay Merchant Identity 证书
您的网站将无法使用 Apple Pay 进行交易。 -
Pass Type ID 证书 (Wallet 钱包)
如果您的证书到期,用户设备上已安装的通行证将继续正常工作。但是,您不能再签署新的通行证或向现有通行证发送更新。如果证书已撤销,您的通行证将无法正常工作。 -
iOS 分发证书 (App Store)
如果您的 Apple Developer Program 会员资格为有效状态,您在 App Store 上的现有 app 都将不受影响。但是,您不能再向 App Store 上传使用已过期或被撤销的证书签名的新 app 或更新版本。 -
iOS 分发证书(企业内部、内部使用 app)
用户无法再运行已使用这个证书签名的 app。您必须分发使用新证书签名的新版本 app。 -
Mac App 分发证书和 Mac 安装器分发证书 (Mac App Store)
如果您的 Apple Developer Program 会员资格有效,则您在 Mac App Store 上的现有 app 将不受影响。但是,您不能再向 App Store 上传使用已过期或被撤销的证书签名的新 app 或更新版本。 -
Developer ID App 证书(Mac app)
如果您的证书到期,用户仍然可以下载、安装和运行使用这个证书签名的 Mac app 版本。但是,您需要使用新的证书来为更新和新的 app 签名。如果您的证书已撤销,用户将不再能安装使用这个证书签名的 app。如果您的 Mac app 通过 Developer ID 描述文件来利用 CloudKit 和推送通知等高级功能,则您必须确保您的 Developer ID 描述文件有效,这样,您的 app 的已安装版本才能够运行。了解更多 (英文)。 -
Developer ID 安装器证书(Mac app)
如果您的证书到期,用户将不再能启动使用这个证书签名的 Mac app 的安装器软件包。之前已安装的 app 仍能继续运行,但是不再能进行新的安装,除非您已使用有效的 Developer ID 安装器证书对安装器软件包重新签名。如果您的证书已撤销,用户将不再能安装使用这个证书签名的 app。 -
Apple Worldwide Developer Relations Certification Intermediate Certificate
开发者可使用 Apple Worldwide Developer Relations 证书颁发机构签发的这个证书,对第三方 app 和 Safari 扩展进行签名以及使用 Apple Wallet 和 Apple Push Notification Service。我们已签发续订的证书,因此,自 2016 年 2 月 14 日起,在对所有新的 Apple Wallet Pass、Apple Push Notification、Safari 扩展和将向 App Store 发布的 app 进行签名时均必须包含这一证书。了解更多 (英文)。
注: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开发中,大概会产生以下几种常见的证书(暂时知道这些证书)
- 开发证书(根据类型不同,个人和公司账号有效期1年,企业账号3年)
- 发布证书(根据类型不同,个人和公司账号有效期1年,企业账号3年)
- 推送证书(有效期1年)
- 描述文件(结合发布证书或者开发证书和App ID产生,有效期1年)
- MDM证书(MDM证书,有效期1年)
对于每一种证书的作用及过期或者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都会受到影响,具体为:
-
企业账号 :
名下所有app都无法打开,打开及闪退,受此影响,推送证书及描述文件均失效 -
公司/个人账号 :
在苹果商店下载安装的app不受影响(无论是过期还是Revoke,甚至是开发者账号被注销,因为这个时候,对于app的签名,是通过苹果私钥直接签名的,没有使用开发者名下的私钥签名),开发者开发模式下的app无法打开及闪退,测试的推送证书失效
推送证书
推送证书过期 :
由于证书过期之后,私钥签名之后,苹果解密之后,发现证书过期无效,证书无法与苹果服务器通信,因此推送证书过期之后,无法使用此证书再次发生推送
推送证书被Revoke :
虽然证书被Revoke,推送功能将无法使用,无法连接苹果服务器(因为生成推送证书的时候,需要生成CSR,里面包含公私钥,我们如果立刻revoke,然后立刻去试的话 是生效的,可能需要苹果同步,第二天将无法使用,提示证书错误,)由此影响的关联的描述文件,如果之前下载的,那么是有效的,如果是在revoke之后下载,将是无效的
描述文件
-
企业账号 :
如果是过期,名下所有app都无法打开,打开及闪退,有时不会立刻就反应过来,因为苹果有缓存,可以看上面的证书介绍 -
公司/个人账号 :
在苹果商店下载安装的app不受影响(无论是过期还是Revoke,甚至是开发者账号被注销,因为这个时候,对于app的签名,是通过苹果私钥直接签名的,没有使用开发者名下的私钥签名),开发者开发模式下的app无法打开及闪退,测试的推送证书失效
MDM证书
只有企业账户才能申请此证书;一旦过期应该根据由此证书签名的所有的第三方证书(比如APSP证书等) 全部无效,Revoke之后应该是和推送证书是一样的,需要再确认一下