У меня есть веб-приложение, которое пытается ударить по https-адресу. У меня есть набор из 4-х сертификатов, которые я импортировать в один общий файл с помощью KeytoolДобавить сертификаты SSL в tomcat 7
keytool -import -v -alias a_base64 -trustcacerts -file a_Base64.cer -keystore testcacerts
keytool -import -v -alias b_base64 -trustcacerts -file b_base64.cer -keystore testcacerts
keytool -import -v -alias c_base64 -trustcacerts -file c_Base64.cer -keystore testcacerts
keytool -import -v -alias d_base64 -trustcacerts -file d_base64.cer -keystore testcacerts
В файле testcacerts генерируется хорошо. В моей Eclipse IDE у меня есть java-программа, которая ударит по https-адресу. Во время запуска программы я дал следующее в аргументах виртуальной машины -Djavax.net.ssl.keyStore = c: // testcacerts
Программа Java прошла нормально. Теперь я развернув войну проекта в сервер Tomcat 7. Когда мое приложение пытается получить доступ к HTTPS URL, он дает следующее исключение
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.
Я установить переменные окружения CATALINA_OPTS и JAVA_OPTS, чтобы указать, что testcacerts расположение JAVA_OPTS = -Djavax.net.ssl.trustStore =/temp/testcacerts
После того, как я запустил свой tomcat, когда мое приложение попадает на https-url, я получаю то же исключение. я даже попытался изменить конфигурацию в server.xml в TOMCAT конф, как указано ниже
<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100"
scheme="https" secure="true" SSLEnabled="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="/temp/testcacerts" keystorePass="samplePassword" />
пароль в keystorePass является тот, который я дал при создании хранилища ключей.
Даже после вышеупомянутых изменений, я получал то же исключение.
В настоящее время я запускаю приложение в среде Unix, а tomcat присутствует и на сервере Unix. У меня нет доступа к каталогу установки java и из-за которого я не могу разместить этот файл сертификата в папке jre \ lib \ security.
Я ничего не вижу здесь. Пожалуйста, направляйте меня.
Hi Micheal, Спасибо за предложения. Я удалил настройки javax, а затем попытался дать keyAlias. На этот раз при запуске tomcat я получил следующее исключение: «Alias name a_base64 не идентифицирует ключевую запись». Я попытался добавить личную запись в файл testcacerts «keytool -genkey -keystore testcacerts -alias privKey -keyalg RSA -keysize 2048». Теперь в keyAlias я дал значение «privKey». На этот раз я не получал никаких исключений во время запуска, но все же старое исключение «не удалось найти допустимый путь сертификации для запрошенной цели». существует. Вы можете мне понравиться? –
, пожалуйста, попробуйте создать самоподписанный сертификат, как описано в первой ссылке выше. Обратите внимание, что по умолчанию псевдоним 'tomcat' – Michael
Я имею в виду PLS шаг шаг за шагом: 1. самостоятельно подписан в соответствии с сайтом 2. изменить псевдоним 3. change keysize – Michael