Я пытаюсь настроить продукт под названием Hermes для цифровой подписи.
У меня есть файл 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, поскольку у меня ее не было, что потребовало от меня удаления также и -destalias. Так что в этом случае у меня нет известного псевдонима для ссылки в mycompany.jks
В любом случае, у меня нет псевдонима. Я попытался импортировать файл pfx, используя keytool -import, но это выдает «Ввод не сертификат X.509».
Что вы, ребята, предлагаете мне попробовать дальше?