2016-08-07 292 views
0

我在阅读this article,它解释了iOS/OSX中的代码签名。代码签名混淆的ios证书

据我所知,钥匙串访问 ultility我可以看到我的证书,如果打开我的开发者证书,我可以看到有一个私钥: enter image description here

文章说:

...你会找到你有私钥的证书。要使用 证书进行签名,您需要私钥...

我明白这一点。

文章还称:

从您的钥匙串导出证书与私营 键,命令点击该证书,选择“导出...

这让我感到私钥被注入到证书中。

但文章接着说:

证书是 - 非常广义上讲 - 公钥与 结合了大量的信息,这是本身的一些 权威

我签会感到困惑,第一个报价表示证书包含一个私钥,但上面的报价表示证书是一个公钥和其他信息的组合。那么私钥在哪里?

我能理解这样的:

证书实际上是持有/嵌套一个私有密钥的公共密钥?那么,如果我导出证书,我实际上是以X509证书的形式导出公钥和私钥以及其他信息?

回答

1

如果您正在导出证书,则不包括私钥(除非您也选择它)。 更多信息:https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html

该文章是正确的。证书本身不包含私钥。但是,在该文章中,您需要使用私钥选择证书并将其导出。这样做时,私钥将包含在您创建的.p12文件中。

+0

你是说我正在阅读的文章是错误的(如果你阅读我的文章中的第二个报价)? –

+0

如果我想要另一个开发人员使用另一台MacBook能够建立我的项目,我应该出口证书给他有或没有私人密钥? –

+0

另一位开发人员应该能够创建自己的开发人员帐户,并使用他们自己的帐户构建和运行应用程序。如果您希望其他开发人员能够对您的应用程序进行代码签名并将其发送给苹果并发布(或为企业开发签名),则他们需要同时拥有证书和私钥。你应该小心地分享你的私钥,特别是当涉及APNS时(这不是这种情况),但如果错误的人会得到它,你可以在苹果公司撤销你的证书并创建一个新的证书。这意味着旧的不能再使用了。 –