用例:您有一个使用自签名证书或不受信任的CA发出的证书的Web服务器,并且您只想确保Java服务器将与此服务器正确通信。
我在网上找到了几本教程,但没有一本使用自动/可编写脚本的方法。
最佳答案
也发布为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
关于java - 如何在单个命令中使用keytool导入和信任Java中的Web服务器证书?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11611450/