繁体   English   中英

如何为 iOS 分发创建 P12 证书

[英]How to create P12 certificate for iOS distribution

我们有一个 iOS 应用,其推送通知证书已过期,我们正在尝试创建一个新应用。 我在 Provisioning 门户(ios_developer.cer、ios_distribution.cer)中创建了新证书并下载了它们。 我正在按照Stack Overflow上的说明将其转换为 PEM,然后转换为 P12 文件,但我被卡住了。 然后当我尝试将 PEM 转换为 P12 时,它需要某种私钥,但我不知道从哪里获取它。

我也尝试将这些加载到 Keychain Access 中。 我读过您可以从那里将它们导出为 P12,但是当我执行导入时,它们不会出现在任何地方。

当您在 Keychain Access 中创建签名请求时会生成您的私钥。 生成并下载证书后,双击它会将其添加到 Keychain Access 中,在那里它将与私钥匹配。 然后,您可以选择证书,并打开箭头以同时选择私钥并将它们一起作为 .p12 文件从 Keychain Access 导出。

.p12 文件用于在 Apple App Store 上发布应用程序

A. 在 Mac 上创建 (.certSigningRequest) CSR 文件

  1. 从实用程序打开钥匙串访问
  2. 从 Keychain Access 工具栏选择Keychain Access -> Preference
  3. 在弹出窗口中选择证书选项卡
  4. “在线证书状态协议”和“证书吊销列表”都设置为“关闭”
  5. 关闭此窗口
  6. 现在从工具栏,打开钥匙串访问>证书助手>从证书颁发机构请求证书
  7. 输入您在 iOS 开发者计划中注册时使用的电子邮件地址和常用名称
  8. 将 CA 电子邮件留空并选择“保存到磁盘”和“让我指定密钥对信息”
  9. 点击继续
  10. 选择硬盘上的文件名和目的地
  11. 点击保存
  12. 在下一个窗口中,将“密钥大小”值设置为“2048 位”
  13. “算法”设置为“RSA”
  14. 点击继续

这将创建您的 certSigningRequest 文件 (CSR) 并将其保存到您的硬盘驱动器。 还将在 Keychain Access 中使用输入的通用名称创建公钥和私钥。

B. 在 iOS 开发者账户中创建“.cer”文件

  1. 登录苹果开发者账号点击“Certificates, Identifiers & Profiles”
  2. 点击“配置文件”
  3. 在“证书”部分点击“生产”
  4. 单击主面板右上角的“添加”(+) 按钮
  5. 现在,选择“App Store 和 Ad Hoc”
  6. 点击继续
  7. 单击“选择文件”并找到您从硬盘驱动器制作的 CSR 文件
  8. 点击生成
  9. 点击下载获取文件

C.安装.cer并生成.p12证书

  1. 找到您下载的 .cer 文件并双击
  2. 将登录下拉列表设置为“登录”并单击添加
  3. 打开 KeyChain Access,您将找到在步骤 A 中创建的配置文件
  4. 您可以展开“私钥”配置文件(显示您添加的证书)
  5. 只选择这两项(不是公钥)
  6. 右键单击并从弹出窗口中单击“导出 2 个项目...”
  7. 现在确保文件格式为“.p12”并选择硬盘驱动器上的文件名和目的地
  8. 单击保存。 现在,系统会提示您设置密码,但将它们都保留为空白
  9. 单击确定。 现在,您的硬盘驱动器上有一个 .p12 文件

请注意,如果问题仍然存在,请尝试以下步骤:

如果您的钥匙串存在于 iCloud 中,则从 iCloud 中删除所有钥匙串内容并在 iCloud 中进行新设置这应该可以工作。

除非您通过从钥匙链左下角选择 (Certificates) 进行过滤,否则您将不会获得扩展选项

好的,问题解决了! 似乎当我双击证书时,它会自动将其安装在 SYSTEM 钥匙串中 - 我不知道为什么。 因此,我只是将证书拖放到 LOGIN 钥匙串中,然后一切都很好。 感谢这篇文章 -> 将证书添加到钥匙串并生成 .p12 文件格式- alon rosenfeld 10 个月前

要让你的 p12 文件走这条路..

步骤 1.XCode > 转到项目设置>常规>签名部分 >签名证书

查看您为此特定应用程序使用的证书,如下图所示

在此处输入图片说明

第 2 步。打开钥匙串> 在左下角类别部分 >证书

通过单击向下箭头查找证书并打开子项,如图所示

在此处输入图片说明

第 3 步。右键单击并通过提供您的密码导出为“Certificates.p12”,例如。 “123456”

对于其他有灰色/灰色 P12 选项的人:

确保您在钥匙串访问中的我的证书或证书类别中。

https://sailthru.zendesk.com/hc/en-us/articles/115000032546-Can-t-export-my-certificate-in-p12-format

对于仍然存在此问题的任何人,我的解决方案是不要同时选择和“导出 2 个项目”(密钥和证书)——而只是导出已经包含密钥的证书。 截至 2016 年,我认为这是这样做的方法,因为以前与导出 2 项一起使用的上传不再有效。

我最终来到这里,因为我试图在没有 Mac 的情况下使用MS Visual Studio App Center在云中构建一个 iOS 应用程序。 问题是每个教程都使用 Jayprakash Dubey 上面评价最高的答案。 该方法使用 Mac 和 KeyChain。 解决方案来自 SO here

您需要一个密钥 (aps_development.key),然后:

  1. 创建密钥对:openssl genrsa -out aps_development.key 2048
  2. 创建CSR:openssl req -new -sha256 -key aps_development.key -out aps_development.csr
  3. 将 CSR 上传到开发者门户以获取证书 aps_development.cer
  4. 转换证书:openssl x509 -inform DER -outform PEM -in aps_development.cer -out aps_development.pem
  5. 构建 PKCS#12:openssl pkcs12 -inkey aps_development.key -in aps_development.pem -export -out aps_development.p12

然后,您可以继续创建应用程序 ID 和配置文件。 这将允许您在 App Center 中进行构建。

对于其他有灰色/灰色 P12 选项的人,

这是我的 macbook pro 的最新截图(2021 年)。

钥匙串访问 v11.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM