处理 AppStoreConnect 证书

Handling AppStoreConnect certificate

我正在尝试在我的 Java 应用程序中实施 AppStoreConnect 身份验证,但我无法正确解析所提供的证书。

在为登录签署 JWT 时,我使用以下代码:

fun parseApplePrivateKey(keyFile: String): PrivateKey {
    // 
    val reader: Reader = InputStreamReader(AppleOAuth::class.java.classLoader.getResourceAsStream(keyFile)!!)
    val pemParser = PEMParser(reader)
    val converter = JcaPEMKeyConverter()
    val keyInfo: PrivateKeyInfo = pemParser.readObject() as PrivateKeyInfo
    return converter.getPrivateKey(keyInfo)
}

这行得通,而且我可以使用以下方式打开 Id 登录 p8:

openssl ec -in apple-open-id-private-key.p8 -text

然而,这不适用于 appstoreconnect 私钥 p8 和 pemParser.readObject() returns null.

我无法使用 openssl 读取 p8 文件,我什至无法找到提供它的格式。

Apple提供的私钥是未加密的,必须用openssl预处理如下:

# openssl pkcs8 -nocrypt -in AuthKey_123456789.p8 > apple-appstoreconnect-private-key.p8