#tomcat #openssl #tomcat7 #keytool
#tomcat #openssl #tomcat7 #keytool
Вопрос:
Я хочу использовать 2way TLS с tomcat,
Я настроил tomcat как:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="${user.home}/keystore/keystoregodaddyclient.jks" keystorePass="test"
truststoreFile="${user.home}/keystore/keystore.jks" truststorePass="test"
truststoreType="JKS" disableUploadTimeout="true"
enableLookups="true" maxHttpHeaderSize="8192"
maxSpareThreads="75" minSpareThreads="25"
clientAuth="true" sslProtocol="TLS" />
У меня есть сертификат и закрытый ключ от третьей стороны.
Я создал свое «хранилище ключей» и доверенное «хранилище ключей» следующим образом
Создание хранилища ключей:
(a) Создайте хранилище ключей pks.
openssl pkcs12 -export -name clientkey -in godady.crt -inkey server.key -out keystore.p12
(b) Импортируйте то же самое в хранилище ключей
keytool -importkeystore -destkeystore keystoregodaddyclient.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias clientkey
(c) Я создал доверенное хранилище ключей как:
keytool -import -v -trustcacerts -alias clientkey -file godady.crt -keystore keystore.jks
Но сервер отклоняет мой запрос и выдает ошибку как:
java.net.SocketException: Software caused connection abort: recv failed
Хотел узнать, правильно ли сформировано хранилище ключей, потому что то же самое работает с самозаверяющим сертификатом.
Комментарии:
1. И сообщения журнала для соединителя HTTPS при запуске Tomcat … ?
Ответ №1:
Убедитесь, что ваш закрытый ключ в хранилище ключей и само хранилище ключей имеют один и тот же пароль!
Проверьте это, снова установив существующий пароль. Если это работает, ваш закрытый ключ и хранилище ключей имеют один и тот же пароль
keytool -keypasswd -new mystorepass -keystore keystore.ks -storepass mystorepass -alias cybereyepk -keypass mystorepass