Bash 正在运行keytool,在-file参数中获取错误?
我正在阅读这篇关于如何允许android客户端使用自签名证书的文章: 在步骤2,我必须运行一些命令,但我对shell不太熟悉,在尝试运行以下命令时出现语法错误:Bash 正在运行keytool,在-file参数中获取错误?,bash,shell,keytool,Bash,Shell,Keytool,我正在阅读这篇关于如何允许android客户端使用自签名证书的文章: 在步骤2,我必须运行一些命令,但我对shell不太熟悉,在尝试运行以下命令时出现语法错误: export CLASSPATH="/Users/me/Desktop/lib/java/bouncycastle/bcprov-jdk16-145.jar" CERTSTORE=res/raw/mystore.bks if [ -a $CERTSTORE ]; then rm $CERTSTORE || exit 1 fi
export CLASSPATH="/Users/me/Desktop/lib/java/bouncycastle/bcprov-jdk16-145.jar"
CERTSTORE=res/raw/mystore.bks
if [ -a $CERTSTORE ]; then
rm $CERTSTORE || exit 1
fi
keytool \
-import \
-v \
-trustcacerts \
-alias 0 \
-file <(openssl x509 -in mycert.pem) \
-keystore $CERTSTORE \
-storetype BKS \
-provider org.bouncycastle.jce.provider.BouncyCastleProvider \
-providerpath /usr/share/java/bcprov.jar \
-storepass mypassword
嗯,我不明白异常告诉我哪个参数不好。更新的脚本如下所示:
export CLASSPATH="/Users/me/Desktop/lib/java/bouncycastle/bcprov-jdk16-145.jar"
CERTSTORE=res/raw/mystore.bks
if [ -a $CERTSTORE ]; then
rm $CERTSTORE || exit 1
fi
keytool \
-import \
-v \
-trustcacerts \
-alias 0 \
-file $(openssl x509 -in mycert.pem) \
-keystore $CERTSTORE \
-storetype BKS \
-provider org.bouncycastle.jce.provider.BouncyCastleProvider \
-providerpath /usr/share/java/bcprov.jar \
-storepass mypassword
谢谢 您可能没有运行Bash。
Ah-hmm-我只是在我的mac上通过控制台运行这个。我加了#/bin/bash语句,但在尝试运行它时出现了相同的错误(sh./test.sh)@user291701:No,如果这样运行,则Bourne shell正在运行它。或者像这样运行它:bash./test.sh
或者使它可执行(chmod+x test.sh
),然后像这样运行:/test.sh
。啊,像“bash./test.sh”这样运行它让它正确执行(我收到了一个与bouncy castle jar相关的类未找到异常,但这可能是因为我没有在类路径中正确设置它)。谢谢!@user291701:我很高兴你取得了进展。谢谢你接受我的答案。别忘了,你也可以将你接受的答案加上任何其他答案或问题进行投票(在您有投票权的网站上的任何地方)您发现出于任何原因(也可以进行向下投票)。美元符号不起作用。这会将openssl
命令的输出放在命令行上,因此它会尝试执行文本。
java.lang.RuntimeException: Usage error, CERTIFICATE----- is not a legal command
at sun.security.tools.KeyTool.parseArgs(KeyTool.java:375)
at sun.security.tools.KeyTool.run(KeyTool.java:171)
at sun.security.tools.KeyTool.main(KeyTool.java:166)
export CLASSPATH="/Users/me/Desktop/lib/java/bouncycastle/bcprov-jdk16-145.jar"
CERTSTORE=res/raw/mystore.bks
if [ -a $CERTSTORE ]; then
rm $CERTSTORE || exit 1
fi
keytool \
-import \
-v \
-trustcacerts \
-alias 0 \
-file $(openssl x509 -in mycert.pem) \
-keystore $CERTSTORE \
-storetype BKS \
-provider org.bouncycastle.jce.provider.BouncyCastleProvider \
-providerpath /usr/share/java/bcprov.jar \
-storepass mypassword
#!/bin/bash