Чтобы решить эту проблему, вы можете попробовать следующее
Загрузите SSLPoke.java из Google
SSLPoke.java
Скомпилируйте это:
javac SSLPoke.java
Как только вы скомпилируете код, вызовите SSLPoke как
java -Djavax.net.debug=all SSLPoke [your https host] 443
В выводе вы увидите, где java ищет cacerts.
Как только вы знаете точное местоположение, используйте keytool для импорта вашего файла в cacerts
keytool -import -alias [your https host] -keystore [the location returned]/cacerts -file [your.crt]
И это все, перезапустите Tomcat, и он должен работать правильно.
Иногда, когда у вас много версий Java на одном и том же компьютере с Linux, даже добавление [your.crt] в кадры, возвращаемые отладкой, не работает, если это так, добавьте [your.crt] ко всем кадрам Linux машина, вы можете найти их все с:
locate cacert
после того, как машина Linux вернет все местоположения cacerts, например:
/home/xuser/NetBeansProjects/porjectx/conf/cacerts
/opt/otherlocation/j2sdkee1.3.1/lib/security/cacerts.jks
/opt/icedtea-bin-6.1.12.7/jre/lib/security/cacerts
/opt/icedtea-bin-6.1.13.5/jre/lib/security/cacerts
/opt/icedtea-bin-7.2.4.1/jre/lib/security/cacerts
/opt/oracle-jdk-bin-1.7.0.76/jre/lib/security/cacerts
/opt/sun-j2ee-1.3.1/lib/security/cacerts.jks
добавьте [your.crt] ко всем из них с помощью keytool и перезапустите tomcat.
Если у вас нет файла your.crt, вы можете получить его командой
openssl s_client -connect [your https host]:443 < /dev/null
и скопировать из ----- НАЧАТЬ СЕРТИФИКАТ ----- в ----- КОНЕЦ СЕРТИФИКАТА -----
Надеюсь, это поможет вам