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

使用apksigner结合Azure Key Vault RSA-HSM证书签名APK时遭遇InvalidKeyException错误求助

apksigner结合Azure Key Vault RSA-HSM证书签名APK时遭遇InvalidKeyException错误求助

之前我在解决apksigner忽略Java参数以集成Azure Key Vault JCA的问题后,现在又碰到了新麻烦——用RSA-HSM证书通过apksigner签名APK时失败了。我在同一个密钥保管库中加载了RSA证书,原本签名APK是成功的,但现在却报了错,错误信息如下:

Exception in thread "main" java.security.InvalidKeyException: Signer #1 failed
        at com.android.apksig.internal.apk.v3.V3SchemeSigner.generateApkSignatureSchemeV3Block(V3SchemeSigner.java:250)
        at com.android.apksig.internal.apk.v3.V3SchemeSigner.generateApkSignatureSchemeV3BlockAndDigests(V3SchemeSigner.java:234)
        at com.android.apksig.DefaultApkSignerEngine.outputZipSectionsInternal(DefaultApkSignerEngine.java:1105)
        at com.android.apksig.DefaultApkSignerEngine.outputZipSections2(DefaultApkSignerEngine.java:1025)
        at com.android.apksig.ApkSigner.sign(ApkSigner.java:629)
        at com.android.apksig.ApkSigner.sign(ApkSigner.java:237)
        at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:425)
        at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:94)
Caused by: java.security.InvalidKeyException: Failed to sign using SHA512withRSA
        at com.android.apksig.internal.apk.ApkSigningBlockUtils.generateSignaturesOverData(ApkSigningBlockUtils.java:1159)
        at com.android.apksig.internal.apk.v3.V3SchemeSigner.generateSignerBlock(V3SchemeSigner.java:310)
        at com.android.apksig.internal.apk.v3.V3SchemeSigner.generateApkSignatureSchemeV3Block(V3SchemeSigner.java:248)
        ... 7 more
Caused by: java.security.InvalidKeyException: No installed provider supports this key: com.azure.security.keyvault.jca.implementation.KeyVaultPrivateKey
        at java.base/java.security.Signature$Delegate.chooseProvider(Signature.java:1302)
        at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1359)
        at java.base/java.security.Signature.initSign(Signature.java:635)
        at com.android.apksig.JcaSignerEngine.sign(JcaSignerEngine.java:53)
        at com.android.apksig.internal.apk.ApkSigningBlockUtils.generateSignaturesOverData(ApkSigningBlockUtils.java:1157)

我真心希望有人遇到过类似的问题。说实话,关于用apksigner结合Azure Key Vault签名APK的资料少得可怜,我现在也很好奇大家都是用什么方法,用硬件加密的代码签名密钥来给Android APK签名的?

我们目前用的是apksigner搭配azure-security-keyvault-jca-2.10.0.jar来对接Azure,而且没法用jarsigner——因为它的签名效果达不到Android v3签名方案的要求。

恳请各位大佬不吝赐教,任何帮助我都感激不尽!

备注:内容来源于stack exchange,提问作者wooliestdad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 10:04:31