Установить djavax.net.ssl.keystore на tomcat

Я пытаюсь настроить безопасное соединение с поставщиком, проблема в том, что я не могу правильно настроить tomcat. Пример:

Я запускаю простой Java-клиент с аргументами JVM

-Djavax.net.ssl.keyStore=/home/pablo/keystore.jks
-Djavax.net.ssl.keyStorePassword=password

и все работает нормально.

Затем я пытаюсь сделать то же самое, поэтому я помещаю те же аргументы в переменную JAVA_OPT в catalina.sh. Но не работает.

Может быть проблема здесь:

http-bio-8080-exec-1, READ: TLSv1.2 Handshake, length = 4
*** ServerHelloDone
Warning: no suitable certificate found - continuing without client authentication
*** Certificate chain
<Empty>
***

Процесс tomcat работает следующим образом

/usr/bin/java -Djava.util.logging.config.file=/home/log/apache-tomcat-7.0.88/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djdk.tls.ephemeralDHKeySize=2048 -Djavax.net.ssl.keyStore=/home/pablo/keyStorePim.jks -Djavax.net.ssl.keyStorePassword=password -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4040,server=y,suspend=n -Djavax.net.debug=ssl -Dignore.endorsed.dirs= -classpath /home/pablo/apache-tomcat-7.0.88/bin/bootstrap.jar:/home/pablo/apache-tomcat-7.0.88/bin/tomcat-juli.jar -Dcatalina.base=/home/pablo/apache-tomcat-7.0.88 -Dcatalina.home=/home/pablo/apache-tomcat-7.0.88 -Djava.io.tmpdir=/home/pablo/apache-tomcat-7.0.88/temp org.apache.catalina.startup.Bootstrap start

Версия Java:

java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

Версия Tomcat:

Server version: Apache Tomcat/7.0.88
Server built:   May 7 2018 11:12:57 UTC
Server number:  7.0.88.0
OS Name:        Linux
OS Version:     4.13.0-39-generic
Architecture:   amd64
JVM Version:    1.8.0_171-b11
JVM Vendor:     Oracle Corporation

Вы добавили свой сертификат в хранилище ключей?

Alfabravo 13.09.2018 20:34

Хранилище ключей обычно устанавливается в server.xml, как правило, для настройки HTTPS. Я подозреваю, что это то, что отменяет ваши настройки. Подробнее см. ссылка.

user3745362 13.09.2018 20:45

@Alfabravo, да, сертификат находится в хранилище ключей, в первом примере (простой клиент Java), а во втором я использую одно и то же хранилище ключей

pablo 13.09.2018 20:50

@ user3745362, я так понимаю, что вы сказали. Я немного исследую это ...

pablo 13.09.2018 20:53

@ user3745362: server.xml устанавливает параметры SSL / TLS, включая хранилище ключей (в версии 8.5 возможно несколько хранилищ ключей) для разъема (ов), которые обрабатывают соединения входящий от клиентов, таких как браузеры. Он не обрабатывает и не отменяет соединения исходящий '[с] поставщиком', как в этом вопросе. Pablo: вероятно, сейчас бесполезен, но поскольку у вас был журнал отладки, непосредственно перед отправленным вами *** ServerHelloDone должен был быть ' *** CertificateRequest 'блок с полезной информацией, и гораздо раньше (может быть, сто строк или больше) он должен был показать загрузку keymanager, также полезно.

dave_thompson_085 28.10.2019 23:23
1
5
1 517
0

Другие вопросы по теме