什么是自签名证书?
在iOS开发过程中,开发者可能需要对应用进行签名。通常情况下,开发者签名证书是通过苹果开发者中心获得的。但是,有时候苹果的官方证书并不可行或某些合法原因下无法使用官方证书,这时就需要使用自签名证书。
制作自签名证书前需要准备的工具和材料
在制作自签名证书前需要准备以下工具和材料:
Mac电脑
openssl工具
Keychain Access(可在Mac的”应用程序”->”实用工具”中找到)
一个空的证书(.cer文件)
一个证书请求(.certSigningRequest文件)
创建自签名证书
接下来是创建自签名证书的步骤:
在终端中运行以下命令生成一个私钥:
openssl genrsa -out ios_private_key.pem 2048
接着,运行以下命令获取一个证书请求:
openssl req -new -key ios_private_key.pem -out ios_certificate_sign.csr
打开Keychain Access,从左侧的选项里选择证书助手->证书颁发机构,点击”创建证书”按钮。

在弹出窗口中,输入证书名称。
选择”创建自签名根证书”选项,然后点击”继续”按钮。
在接下来的窗口中,选择”存储位置”选项,将证书保存到本地磁盘中。
点击”下一步”按钮,向下滚动并选择”自定义设置”选项。
向下滚动并选择”用户信任”选项,将此证书的信任级别更改为”一直信任”。
关闭窗口,重新打开”证书助手”。此时,新的证书应该显示在”我的证书”文件夹中。
找到刚刚创建的证书,拖动到Keychain Access的”重命名”窗口中,命名为”ios_cert_signing”
使用以下命令将生成的证书请求(.csr文件)和私钥(.pem文件)构建为一个证书(.cer文件):
openssl x509 -req -in ios_certificate_sign.csr -out ios_certificate_sign.cer -signkey ios_private_key.pem -days 365
使用自签名证书
在将应用上传到App Store之前,需要为应用签名。为了使用自签名证书,需要在应用中选择该证书作为签名证书。
打开应用项目中的”Build Settings”,在”Code Signing”下选择”iOS Developer”,并选择刚刚创建的自签名证书。现在你可以为应用构建和签名了。
自签名证书的局限性
值得注意的是,自签名证书不具备官方签名证书的所有额外功能。例如,它不能用于推送服务或使用Apple Pay等一些苹果提供的服务。因此,在选择使用自签名证书之前,需要仔细考虑应用将用于的实际场景和需求,以确保签署方法的有效性。