You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过App Store Connect API生成证书?自动生成CSR内容方法

自动生成CSR用于App Store Connect API的方法

完全可以通过命令行工具或编程语言自动生成CSR,无需手动操作,以下是两种常用方案:

一、使用OpenSSL命令行(跨平台,适合脚本自动化)

OpenSSL是绝大多数系统自带的工具,可快速生成符合要求的CSR:

  1. 生成RSA私钥(无密码,适合自动化流程)
openssl genrsa -out ios_distribution.key 2048
  1. 生成CSR(一次性指定所有信息,无交互)
    替换-subj后的字段为你的实际信息:
openssl req -new -key ios_distribution.key -out ios_distribution.csr -subj "/CN=你的名称/C=CN/ST=你的省份/L=你的城市/O=你的公司名/OU=你的团队名"

字段说明:

  • CN:常用名称(如个人姓名或公司名称)
  • C:两位国家代码(如CN表示中国,US表示美国)
  • ST:省份/州
  • L:城市
  • O:组织/公司名称
  • OU:组织单元/团队名称
  1. 提取纯净的CSR内容(直接输出可填入API的Base64字符串)
openssl req -in ios_distribution.csr -noout -text | awk '/BEGIN CERTIFICATE REQUEST/,/END CERTIFICATE REQUEST/{if(/BEGIN/){next}if(/END/){next}print}' | tr -d '\n'

执行后得到的字符串就是csrContent需要的值。

二、使用Python代码生成(适合嵌入自动化程序)

借助cryptography库可以在代码中完成CSR生成,步骤如下:

  1. 先安装依赖:
pip install cryptography
  1. 示例代码:
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.x509.oid import NameOID
from cryptography import x509
import base64

# 生成2048位RSA私钥
private_key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048,
)

# 可选:保存私钥到本地(后续更新证书需要用到)
with open("ios_distribution.key", "wb") as f:
    f.write(private_key.private_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PrivateFormat.PKCS8,
        encryption_algorithm=serialization.NoEncryption()
    ))

# 构造CSR主题信息,替换为你的实际数据
subject = x509.Name([
    x509.NameAttribute(NameOID.COUNTRY_NAME, "CN"),
    x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, "广东省"),
    x509.NameAttribute(NameOID.LOCALITY_NAME, "深圳市"),
    x509.NameAttribute(NameOID.ORGANIZATION_NAME, "我的公司"),
    x509.NameAttribute(NameOID.COMMON_NAME, "我的名字"),
])

# 生成CSR并签名
csr = x509.CertificateSigningRequestBuilder().subject_name(
    subject
).sign(private_key, hashes.SHA256())

# 处理成API需要的csrContent格式(去除PEM标记和换行)
pem_csr = csr.public_bytes(serialization.Encoding.PEM).decode()
csr_content = pem_csr.replace("-----BEGIN CERTIFICATE REQUEST-----", "").replace("-----END CERTIFICATE REQUEST-----", "").replace("\n", "")

print(csr_content)

运行代码后,控制台输出的字符串即可直接填入API请求的csrContent字段。

内容的提问来源于stack exchange,提问作者dev radwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 23:05:11