Исключение рукопожатия ssl из-за файла хранилища ключей
У меня есть запрос, где мне нужно записать содержимое в БД из приложения, работающего на сервере A, к тому же приложению, запущенному на другом сервере экземпляра B.
Чтение и запись в БД через SOAP API
Оба сервера имеют свой собственный файл client.truststore.
С автономного сервера C, используя client.trustsrore сервера A, я могу читать и записывать данные в базу данных сервера A, а с помощью хранилища доверенных сертификатов клиента B могу читать и записывать данные в базу данных сервера B.
Поскольку требуется прочитать данные с сервера A и записать их на сервер B. Я ввел новый файл хранилища ключей на обоих серверах и правильно установил system.properties (местоположение хранилища ключей и пароль). и это хранилище ключей было правильно скопировано на оба сервера с разрешениями.
Я создал сертификат с помощью закрытого ключа, а затем создал файл хранилища ключей с помощью команды keytool.
Так как хранение файла хранилища ключей на 2 сервере не работало. Он всегда жаловался на unknown_certificate. Я попытался импортировать сертификат в cacerts в /$JAVA_HOME/lib/security/. Но даже это дает неизвестный сертификат с исключением рукопожатия.
Есть ли что-то еще, что я хочу сделать, чего мне не хватает?
С уважением
Дирадж Джоши
2 ответа
Сертификат для сервера приложений должен совпадать с именем хоста этого сервера. Это может быть проблемой, так как у вас есть два разных сервера с двумя разными именами хостов.
Вы должны ввести действительное имя хоста в процессе создания сертификата, когда вас попросят указать ваше имя и фамилию:
What is your first and last name?
[Unknown]: myserver.domain.com
Но в этом случае я не совсем уверен, что вы могли бы сделать, чтобы выполнить свою задачу. Возможно, вы должны иметь для своих серверов два разных сертификата с разными соответствующими именами хостов. Но эти сертификаты должны быть подписаны одним родительским сертификатом, которому доверяют ваши базы данных. Что-то вроде того.
Хорошо, решение было простым. Создайте новый магазин, используя сертификаты двух серверов
keytool -import -alias <alias> --keystore <newstore> -file server1.crt -storepass changeit
keytool -import -alias <alias> --keystore <newstore> -file server2.crt -storepass changeit
Теперь магазин новостей можно использовать для связи SSL.
С уважением
Дирадж Джоши