如何创建 Apple 安装程序包签名证书

信息安全 证书 openssl
2021-08-18 10:41:49

我们如何使用 OpenSSL 创建具有以下扩展密钥使用扩展的证书?

Extended Key Usage 扩展,关键,目的包含 Developer ID Installer Package Code Signing ( 1.2.840.113635.100.4.13 )

Apple 的开发人员工具productsign要求签名证书符合证书颁发机构证书实践声明开发人员 ID(第 14 页,共 18 页)中描述的安装程序包签名证书配置文件。

我想用我们自己的证书而不是 Apple 颁发的证书来签署我们的产品预览版。

2个回答

为我自己复制粘贴文档。有关证书扩展的更多信息,请查看 Apple Developer ID认证实践声明

  1. apple.conf使用以下内容创建

    [ req ]
    distinguished_name = req_name
    prompt = no
    [ req_name ]
    CN = my-test-installer
    [ extensions ]
    basicConstraints=critical,CA:false
    keyUsage=critical,digitalSignature
    extendedKeyUsage=critical,1.2.840.113635.100.4.13
    1.2.840.113635.100.6.1.14=critical,DER:0500
    
  2. 生成密钥:

    openssl genrsa -out apple.key 2048

  3. 创建自签名证书:

    openssl req -x509 -new -config apple.conf -nodes \
    -key apple.key -extensions extensions -sha256 -out apple.crt
    
  4. 将密钥和证书包装到 PKCS#12 中:

    openssl pkcs12 -export -inkey apple.key -in apple.crt -out apple.p12

  5. 使用open apple.p12. 将其导入钥匙串选择“始终信任”。

  6. 使用证书对安装程序进行签名:

    productbuild --sign "my-test-installer" ...

要使用 OpenSSL 在颁发的证书中添加扩展,您必须使用包含扩展值的“配置文件”。有关说明,请参阅此页面(有一个关于Extended Key Usage扩展的部分)。然后配置文件与openssl ca命令一起使用,带有-config-extensions命令行标志(请参阅文档)。