我已经为此挣扎了几天了,我相信我有一个解决办法,但这是一个非常糟糕的办法。
我们的代码签名证书位于HSM插槽中。所以我们必须使用PKCS11来签名。
据我所知,maven webstart插件(beta 4)缺乏对providerClass, providerArg和providerName的支持。这意味着PKCS11签名不能以这种方式发生。
好。这是jarsigner插件。这可以很好地为jar签名。
问题是,我们现在还必须使用updateManifestEntries来添加代码库和权限条目到我们的webstart applet。
实际上,webstart插件中执行 manifest更新的实际代码在 中if (sign) { ... }
所以它永远不会发生。
所以我们必须有一个伪造的自签名证书和密钥,并在webstart插件的签名配置中使用它,这样我们就可以更新jar的清单,然后扔掉所有浪费的工作,用jarsigner插件辞职jar。
肯定有更好的方法!
要使pkcs# 11为默认值并传递一个参数,我认为您可以这样做:
$ JAVA_HOME/lib/secuirty/java.security:
security.provider.1=com.security.whateverPKCS11Provider whateverProviderArg1