我讀這篇文章有關如何允許自簽名的證書,以通過Android客戶端可以使用:運行keytool,得到一個錯誤的文件參數?
http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html#comment-form
在步驟2中,我要運行一些命令,但我不太熟悉的外殼和我得到試圖運行以下時語法錯誤:
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
我得到的錯誤,當我運行:
./test.sh: line 11: syntax error near unexpected token `('
./test.sh: line 11: ` -file <(openssl x509 -in mycert.pem) \'
所以-file語法是有問題的,但我不知道該怎麼改變它,因爲我不知道-file參數可以處理什麼語法。
任何人有什麼想法?我在Mac 10.6,
感謝
---------更新---------------
如果我取代「 <「字與‘$’,在執行時出現以下異常:
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)
嗯,我不理解在arg異常告訴我是壞的,但。腳本更新如下:
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
謝謝!
美元符號是行不通的。這將'openssl'命令的輸出放在命令行上,以便它試圖執行文本。 – 2011-03-11 06:25:52