Mac系统下如何获取SPM集合签名所需的PEM编码私钥及DER编码证书路径
问题内容
我正尝试使用苹果的全新SPM Collection签名工具,但不清楚如何获取该工具要求的相关文件。
该工具的使用定义如下:
USAGE: package-collection-sign <input-path> <output-path> <private-key-path> [<cert-chain-paths> ...] [--verbose] ARGUMENTS: <input-path> 待签名的包集合文件路径 <output-path> 签名后的包集合文件输出路径 <private-key-path> 证书对应的私钥文件路径,要求为PEM编码 <cert-chain-paths> 证书链中所有证书的路径,要求为DER编码。签名所用的证书必须放在第一位,根证书放在最后一位
我明白input-path和output-path参数的含义,但不知道应该从哪里获取PEM编码的私钥以及DER编码的证书链文件,我在这一领域没有相关经验,如果有人能告知我如何获取或生成这些文件将不胜感激,谢谢。
解答
首先需要明确,该工具要求的证书必须来自苹果开发者账号体系,自签证书生成的签名不会被Xcode信任,你可以按以下步骤获取所需文件:
1. 生成PEM格式私钥
- 打开Mac自带的「钥匙串访问」应用,在顶部菜单栏选择「钥匙串访问」-「证书助理」-「从证书颁发机构请求证书」
- 填写开发者账号绑定的邮箱和自定义名称,勾选「存储到磁盘」,点击继续后将CSR文件保存到本地,此时钥匙串会自动生成对应的RSA私钥
- 在钥匙串的「登录」分类-「密钥」栏目找到刚生成的私钥,右键选择「导出」,存储格式选
.pem,设置密码后保存的文件就是你需要的private-key-path参数对应的文件
2. 获取DER格式签名证书
- 登录苹果开发者后台的证书管理页,选择创建「Swift Package Collection Certificate」类型的证书,上传之前生成的CSR文件,提交后下载生成的
.cer格式证书,该文件本身就是DER编码的,可直接使用 - 若你已经有对应类型的证书,直接从钥匙串导出为
.cer格式即可
3. 准备完整证书链
苹果的证书链默认包含三级,你需要按顺序整理路径:
- 第一位:刚才获取的Swift Package Collection签名证书
- 第二位:Apple Worldwide Developer Relations Certification Authority中级证书,可直接从钥匙串搜索导出为DER格式
- 第三位:Apple Root CA根证书,同样导出为DER格式
- 将三个文件的路径按上述顺序填入
cert-chain-paths参数即可
你可以用以下命令校验文件格式是否合法:
- 校验PEM私钥:
openssl rsa -in 你的私钥路径.pem -check无报错即为正常 - 校验DER证书:
openssl x509 -in 你的证书路径.cer -inform DER -noout -text可正常输出证书信息即为正常
内容的提问来源于stack exchange,提问作者Ferdinand Rios
相关产品推荐
相关产品推荐

