Я реализую проект https. Я просто попробовал ssl-соединение с tomcat Я создал ключ и сертификаты, используя следующие команды со следующего сайта.
http://mircwiki.rsna.org/index.php?title=Configuring_Tomcat_to_Support_SSL
genrsa –des3 –out tomcatkey.pem 2048
req –new –x509 –key tomcatkey.pem –out tomcatcert.pem –days 1095 -config "c:/openssl/tomcatkey.pem"
Итак, я получил сертификат и ключ от команд openssl. (Я использовал ключ как "pratap" )
Я помещаю эти 2 файла в папку tomcat.
i изменил соединительный элемент 8443
<Connector
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
SSLCertificateFile="c:/tomcat7/tomcatcert.pem"
SSLCertificateKeyFile="c:/tomcat7/tomcatkey.pem"
clientAuth="optional" SSLProtocol="TLSv1" SSLPassword="pratap" />
когда я запускаю https://localhost:8443
, он работает нормально.
Теперь в eclipse я создал сервер этого и попытаюсь запустить из eclipse
Но он показывает следующую ошибку.
java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
Я не использовал команду keystore в любом месте.
мог ли какой-нибудь орган немного осветить это. Спасибо..
Вы должны прочитать http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html#Configuration.
BTW: "Keystore был взломан, или пароль был неправильным" - эта ошибка означает, что ваше хранилище ключей разбито или вы использовали неправильный пароль. Если вы используете selfcigned cert remeber для создания TrustStore.
Вам необходимо передать пароль хранилища ключей в конфигурацию вашего соединителя. Вот пример:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystorePass="qwerty"
clientAuth="false" sslProtocol="TLS" />
Если вы хотите использовать другое хранилище ключей, вам нужно создать его:
keytool -genkey -alias tomcat -keyalg RSA -keystore /home/user/.keystore2
и использовать его в вашей конфигурации:
<Connector
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="${user.home}/.keystore2" keystorePass="qwerty"
clientAuth="false" sslProtocol="TLS"/>