1
使用案例:您的Web服務器使用自簽名證書或不可信CA所發出的證書,並且只想確保您的Java服務器能夠與此服務器正確通信。如何在一個命令中使用keytool在java中導入和信任一個web服務器證書?
我在網上發現了幾個教程,但沒有一個使用自動化/可腳本化的方法。
使用案例:您的Web服務器使用自簽名證書或不可信CA所發出的證書,並且只想確保您的Java服務器能夠與此服務器正確通信。如何在一個命令中使用keytool在java中導入和信任一個web服務器證書?
我在網上發現了幾個教程,但沒有一個使用自動化/可腳本化的方法。
也作爲https://gist.github.com/3164098(補丁歡迎)
#!/bin/bash
REMHOST=$1
REMPORT=${2:-443}
KEYSTORE_PASS=changeit
KEYTOOL=/opt/jira/jre/bin/keytool
# FYI: the default keystore is located in ~/.keystore
if [ -z "$REMHOST" ]
then
echo "ERROR: Please specify the server name to import the certificatin from, eventually followed by the port number, if other than 443."
exit 1
fi
set -e
rm -f $REMHOST.pem
echo -n | openssl s_client -connect $REMHOST:$REMPORT 2>/dev/null $REMHOST.pem
if $KEYTOOL -list -storepass ${KEYSTORE_PASS} -alias $REMHOST >/dev/null
then
echo "Key of $REMHOST already found, skipping it."
else
$KEYTOOL -import -trustcacerts -noprompt -storepass ${KEYSTORE_PASS} -alias $REMHOST -file $REMHOST.pem
fi