__CAPGO_KEEP_0__ 首页

苹果签名

iOS 证书生成器

在 Windows、Linux 或 macOS 上创建 iOS 分发或开发证书,无需 Mac。生成证书签名请求 (CSR) 和私钥,并将 CSR 上传到 Apple,然后将颁发的证书转换为 .p12 文件用于签名。

  • 在 Windows、Linux 或 macOS 上,无需 Keychain Access 或 Mac,创建 Apple 准备的 CSR。
  • 适用于 Apple 分发 (App Store、TestFlight、ad hoc) 和 Apple 开发证书。
  • 将颁发的 .cer 文件转换为 .p12 文件,在本页面直接在浏览器中完成,用于 Xcode、fastlane、CI 或 Capgo Cloud Build。

工作流程

  1. 1. 输入您想附加到签名请求中的证书主题详细信息。
  2. 2. 下载 CSR 和匹配的私钥。
  3. 3. 在 Apple Developer 中上传 CSR 时创建证书时上传 CSR。
  4. 4. 将颁发的 .cer 和私钥转换为密码保护的 .p12 文件(步骤 2 中的下一步)。

步骤 1

生成 CSR 和私钥

在 Apple 证书请求中使用相同的人或组织身份。

输出

您的生成签名请求

直到 CSR 生成后,才会显示内容。生成后,请下载并安全存储私钥。

生成证书请求以查看主题摘要和下载按钮。

第二步

在 Apple 发布证书后,将

与第 1 步中的私钥结合以获取一个密码保护的 .cer 用于 Xcode、fastlane、CI 或 __CAPGO_KEEP_0__ Cloud Build。 .p12 为 Xcode、fastlane、CI 或 Capgo Cloud Build。

您的证书、私钥和密码均在本地读取,且不上传到任何服务器。 第 1 步

从Apple Developer下载的distribution.cer或development.cer文件,DER和PEM均被接受。

从Apple上传的CSR下载的ios-private-key.pem文件

输出

您的.p12签名身份

选择您的.cer和私钥,设置密码,然后构建.p12。它使用3DES加密和SHA-1MAC,macOS Keychain和Xcode接受的格式。

基础

什么是 iOS 签名证书?

苹果要求每个 iOS 应用程序都必须 code 签名。签名证书证明构建来自您的 Apple Developer 团队成员,iOS 拒绝安装或启动无法信任的签名的应用程序。

获取一个需要三个文件。 The CSR (.csr) 包含您的公钥和身份信息并发送给苹果。 The 私钥 (.pem) 保留在您这里。 The 证书 (.cer) 是苹果发回来的。构建工具 .p12 文件。

在 Mac 上,Keychain Access 创建 CSR,并将私钥隐藏在您的登录密钥链中。这款生成器直接给您两个文件,因此您可以从 Windows、Linux 或 CI 运行器创建 Apple 分发或 Apple 开发证书,并且您始终知道密钥的位置。

安全性和隐私

您的私钥如何处理

  • CSR 和 2048 位 RSA 私钥在 HTTPS 协议下通过无状态的 Capgo 端点创建并直接返回给您的浏览器。
  • 响应以 Cache-Control: no-store。没有保存到数据库或保留在响应后。
  • CSR 使用 SHA-256 签名,Apple 开发者期望的格式。仅上传 CSR 到 Apple;私钥始终与您一起。
  • 浏览器中运行的 .cer 到 .p12 转换器。您的证书、私钥和密码从未上传。
  • 不需要帐户或注册,请求被限制以防止滥用。

愿意在本地生成密钥?此 OpenSSL 命令产生相同的两个文件。

等效 OpenSSL 命令
openssl req -new -newkey rsa:2048 -nodes \
  -keyout ios-private-key.pem \
  -out ios-certificate-request.csr \
  -subj "/emailAddress=jane@company.com/CN=Jane Doe/C=US"

一步一步

在 Mac 无法使用的情况下,如何创建 iOS 分发证书

从 CSR 到 TestFlight 上的已签名构建。每一步都可以在 Windows、Linux 或 macOS 的浏览器和终端中使用。

  1. 步骤 1

    生成 CSR 和私钥

    在上面的表单中输入您的姓名、电子邮件和两位字母国家代码 code,并选择生成 CSR 和私钥。下载两份文件,并保留私钥安全。

  2. 步骤 2

    在 Apple Developer 中创建证书

    登录 developer.apple.com,打开证书、标识符和配置文件,选择加号按钮,选择 Apple 分发或 Apple 开发。

  3. 步骤 3

    上传 CSR 并下载 .cer

    上传 ios-certificate-request.csr 文件,继续,并下载已颁发的证书,通常命名为 distribution.cer 或 development.cer。

  4. 步骤 4

    将 .cer 文件转换为 .p12 文件

    使用步骤 2 中的 .cer 到 .p12 转换器:选择 .cer 和私钥,设置密码,并下载 .p12。它可以在浏览器中运行,也可以使用 OpenSSL 命令

  5. 步骤 5

    创建分发配置文件

    在 Apple Developer 中,创建 App Store、ad hoc 或开发分发配置文件,针对您的 App ID 并选择新证书

  6. 步骤 6

    签名和发布您的应用

    将 .p12 和配置文件导入 Xcode、fastlane、您的 CI 秘密或 Capgo Cloud Build,然后构建并上传您的应用到 TestFlight 或 App Store

使用输出

使用 .p12 签名您的 iOS 应用

最快的路径是 在线浏览器中的 .cer 转换为 .p12 如上所述。 如果您更喜欢命令行? OpenSSL 可以完成相同的工作;它会要求您输入一个导出密码,这将成为您的 .p12 密码。

使用 OpenSSL 创建 .p12

OpenSSL 已经在 macOS 和大多数 Linux 发行版上预安装,通过 Git Bash 或 WSL 可以在 Windows 上获得。

将 .cer 转换为 .p12
# 1. Convert Apple's DER .cer to PEM
openssl x509 -inform DER -in distribution.cer -out distribution.pem

# 2. Bundle the certificate and private key into a .p12
#    -legacy (OpenSSL 3) keeps the file compatible with macOS Keychain.
#    Drop it on OpenSSL 1.1 or LibreSSL, which do not support the flag.
openssl pkcs12 -export -legacy \
  -inkey ios-private-key.pem \
  -in distribution.pem \
  -name "Apple Distribution" \
  -out distribution.p12

Capgo 云构建

保存 .p12 和配置文件一次,让 Capgo 云构建 签名并上传 iOS 构建,无需 Mac。

Capgo CLI
bunx @capgo/cli@latest build credentials save \
  --platform ios \
  --certificate ./distribution.p12 \
  --p12-password "your-p12-password" \
  --ios-provisioning-profile "com.example.app=./profile.mobileprovision" \
  --apple-team-id "TEAM123456"

上下文:Capgo 介绍页面。角色:部分或页面标题。见于:关于 .astro 页面。保留 Capgo 产品/品牌和开发者术语的原始形式。消息键 `about_capability_cli_title` (关于能力 CLI 标题)。

fastlane 和 Xcode

Fastfile
import_certificate(
  certificate_path: "distribution.p12",
  certificate_password: ENV["P12_PASSWORD"],
  keychain_name: "build.keychain",
  keychain_password: ENV["KEYCHAIN_PASSWORD"]
)

CI 秘钥和 key 检查

为 GitHub Actions 或 GitLab 秘钥编码签名文件,并确认证书与私钥匹配。

base64 和 OpenSSL
# Encode the .p12 and profile for CI secrets
base64 -i distribution.p12 | tr -d '\n' > p12.base64
base64 -i profile.mobileprovision | tr -d '\n' > profile.base64

# Check that the certificate and key match (both hashes must be equal)
openssl x509 -noout -modulus -in distribution.pem | openssl md5
openssl rsa -noout -modulus -in ios-private-key.pem | openssl md5

故障排除

常见 iOS 证书错误和修复

您输入的密码不正确(Keychain 导入)
OpenSSL 3 使用算法加密 .p12 文件,macOS Keychain 可能会拒绝。重新导出 .p12 文件,使用上面的 -legacy 标志。
找不到匹配私钥的证书
.cer 文件是为不同的 CSR 发行的。使用与该 CSR 下载的私钥,或撤销证书并从新 CSR 开始。
无法加载证书
苹果将 .cer 文件以 DER 格式传递。将 .cer 文件转换为 openssl x509 时,请添加 -inform DER
Provisioning profile 未包含签名证书
Profiles 与特定证书相关。编辑或重新生成配置文件后创建新证书,下载配置文件。
已达到证书数量限制
苹果限制团队可以持有的分发证书数量。请在 Apple Developer 中撤销未使用的证书。Live App Store 应用程序不受影响。
证书在 Keychain 中未被信任
从 Apple PKI 安装 Apple 全球开发者关系 (WWDR) 中间证书,然后再次导入 .p12 文件。

签名后

无需再次进行 App Store 回旋

签名后,Capgo 可以在 OTA 中实时更新 Capacitor web-layer 变更—通道、回滚和您已使用的 CI/CD 流程。 无需等待,您可以在准备好时免费试用。

常见问题

iOS证书生成器FAQ

关于CSRs、证书类型、.p12转换、Apple Developer帐户和在没有Mac的情况下签署iOS应用的答案。

这个iOS证书生成器创建什么?

它创建一个证书签名请求(.csr)和匹配的RSA 2048-bit私钥(.pem)。将CSR上传到Apple Developer,获取Apple Distribution或Apple Development证书(.cer),然后将.cer与私钥合并为一个.p12文件用于Xcode、fastlane、CI或Capgo Cloud Build。

什么是证书签名请求(CSR)?

CSR是一小文件,包含您的公钥和身份信息(姓名、电子邮件、国家),使用私钥签名。Apple使用它来颁发与该密钥绑定的签名证书。私钥永远不会上传到Apple,这就是为什么您必须保留.pem文件的原因。

我能在没有Mac的情况下创建iOS分布式证书吗?

是的。生成CSR和私钥,上传CSR到Apple Developer门户,下载.cer,然后使用本页面步骤2中的转换器将其转换为.p12文件。无论是Windows、Linux还是macOS,都可以工作,因此不需要Keychain Access。

在Apple Developer中,我应该选择哪种证书类型?

选择 Apple 开发来在 Xcode 中运行已注册的测试设备。选择 Apple 分发来为 App Store、TestFlight 和 ad hoc 分发签署构建。同样的 CSR 可以用于任何类型;类型在 Apple Developer 中选择,而不是在此工具中。

私钥是否存储在服务器上?

否。在第 1 步中,CSR 和私钥通过无状态的 HTTPS 端点 Capgo 动态生成,并直接返回给您的浏览器,Cache-Control:no-store;它们永远不会写入数据库或保留在响应之后。第 2 步,.cer 到 .p12 的转换器,完全在您的浏览器中运行,并上传 nothing。如果您的政策要求本地密钥生成,请使用此页面上的等效 OpenSSL 命令。

为什么需要将 .cer 文件转换为 .p12 文件?

.cer 文件需要转换为 .p12 是因为 Apple 给你的 .cer 文件只包含公钥。签署应用程序还需要私钥,所以构建工具期望一个包含证书和私钥的密码保护的 .p12 文件。

如何将 .cer 文件转换为 .p12 文件?

使用此页面的第 2 步:选择 Apple 的 .cer (DER 或 PEM),选择用于创建 CSR 的私钥 .pem,输入密码,并选择 Build .p12 文件。浏览器检查证书是否与密钥匹配,并构建一个 3DES 加密的 .p12,macOS Keychain、Xcode 和 fastlane 都接受。没有任何内容上传。您还可以将 .p12 作为 base64 复制为 CI 秘密。

是否需要 Apple Developer 账户?

是的。上传 CSR 并颁发签名证书需要 Apple Developer Program 会员资格(每年 99 美元,或企业计划用于内部分发)。CSR 本身可以在没有帐户的情况下生成。

iOS 签名证书有效多久?

Apple 开发和 Apple 发布证书有效期为一年。已在 App Store 上发布的应用程序在证书过期或被撤销后仍然可以正常工作,但您需要新证书和分发配置文件来签署下一个构建。

是否可以重用相同的 CSR 或私钥?

可以,但每个证书使用新密钥 pair 更安全和更容易轮换。您必须不要混合使用:.cer 只能与创建其 CSR 的确切私钥一起使用。如果密钥丢失,请撤销证书并生成新 CSR。

是否可以使用此 CSR 为推送通知 (APNs) 证书?

是的。Apple 在创建 APNs SSL 证书时要求 CSR。对于新应用程序,APNs 身份验证密钥 (.p8) 通常更简单,因为它永远不会过期并且适用于所有应用程序。