我正在嘗試配置名爲Hermes的產品進行數字簽名。Keystore別名空錯誤
我有我自身配置如下文件MyCert.pfx:
<component id="keystore-manager-for-signature" name="Key Store Manager for Digital Signature">
<class>hk.hku.cecid.piazza.commons.security.KeyStoreManager</class>
<parameter name="keystore-location" value="/opt/mycompany/certs/MyCert.pfx"/>
<parameter name="keystore-password" value="12345678"/>
<!-- parameter name="key-alias" value="joeblank"/-->
<!-- parameter name="key-password" value="12345678"/-->
<parameter name="keystore-type" value="PKCS12"/>
<parameter name="keystore-provider" value="org.bouncycastle.jce.provider.BouncyCastleProvider"/>
</component>
愛馬仕拋出這樣一個異常:
hk.hku.cecid.ebms.spa.task.MessageValidationException: Cannot sign the ebxml message
by hk.hku.cecid.ebms.pkg.SignatureException: [10204] Cannot sign message Exception: java.lang.NullPointerException Message: null
Try to retreive key alias[null] from keystore[/opt/mycompany/certs/MyCert.pfx]
by java.lang.NullPointerException
我沒有爲別名pfx文件。當我在Tomcat的server.xml中使用它時,我不需要指定它。
也有人建議我應該用這樣的命令將證書導入到JSK店:
keytool -importkeystore -deststorepass [password] -destkeystore [JKS keystore file] -deststoretype JKS -destalias [alias] -srckeystore [p12 keystore file] -srcstoretype PKCS12 -srcstorepass [password] -srcalias [alias]
我不得不刪除-srcalias部分,因爲我沒有這個,這需要我也刪除了-stalias。所以在這種情況下,我沒有在mycompany.jks中引用的已知別名。
無論哪種方式,我沒有別名。我嘗試使用keytool -import導入pfx文件,但引發「輸入不是X.509證書」。
你們建議我應該嘗試下一步?
是的!這解決了這個問題。別名是一些非常長的字母數字字符串。 – udeleng 2012-01-13 06:40:04