Я пытаюсь выполнить .sh файл для помещения сертификата через команду keytool в каждом jre/lib/security/cacert файле, описанном в ~/.java/deployment/deployment.properties файл.
#!/bin/bash
PATTERN=deployment\.javaws\.jre\.[0-9]*\.path
FILE=~/.java/deployment/deployment.properties
sep='='
trail=lib/security/cacerts
#Traverse file line by line
while read line ; do
#If line matches pattern
if printf %s\\n "${line}" | grep -q "${PATTERN}"; then
case $line in
(*"$sep"*)
#Process line to get path for ../jre/lib/security/cacert file
after=${line#*"$sep"};
resultPath=${after%????????}${trail};
#This fails : no password asked and IOException showed
sudo bash -c keytool -import -v -trustcacerts -alias test-cert -file ./test.cer -keystore ${resultPath};
;;
(*)
;;
esac
fi
done < "$FILE"
В строке
sudo bash -c keytool -import -v -trustcacerts -alias test-cert -file ./test.cer -keystore ${resultPath};
Должен просить пароли: 1-й - пароль администратора из-за sudo
и 2-й - keystore
пароль. Но когда я прокручиваю этот сценарий bash ./script.sh
, оболочка просит только пароль администратора и нет keystore
спросил. В результате. У меня есть эта ошибка:
Enter keystore password: keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:772)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
at java.security.KeyStore.load(KeyStore.java:1214)
at sun.security.tools.KeyTool.doCommands(KeyTool.java:885)
at sun.security.tools.KeyTool.run(KeyTool.java:340)
at sun.security.tools.KeyTool.main(KeyTool.java:333)
Caused by: java.security.UnrecoverableKeyException: Password verification failed
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:770)
... 5 more
О чем должен я действительно получать просьбу keystore
пароль?