問題:
在服務器上,下載https的鏈接文件,報錯javax.net.ssl.SSLKeyException: RSA premaster secret error
在本地運行的時候沒報錯,但是在服務器上報錯
解決方案:
將jre目錄下的lib/ext/sunjce_provider.jar加載進來
jre目錄:$JAVA_HOME/jre
加載sunjce_provider.jar的兩種方法:
1、將sunjce_provider.jar拷貝到web工程目錄下
2、修改啟動腳本,將jre目錄加載到classpath下
vi catalina.sh
修改elif [ "$1" = "start" ] ; then下的啟動命令,增加 -Djava.ext.dirs指定額外加載jar的目錄,多個目錄用:隔開
eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVV
A_OPTS $CATALINA_OPTS \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Djava.security.manager \
-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.ext.dirs="/opt/web/customscript/customlib:$JAVA_HOME/jre/lib/ext" \