Проблема AWS Java Lambda для подключения к IBM Queue с помощью SSLJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема AWS Java Lambda для подключения к IBM Queue с помощью SSL

Сообщение Anonymous »

Сценарий -> Нам нужно подключить лямбду к очереди IBM, которая срабатывает по расписанию, подключается к внешней очереди IBM и извлекает доступные сообщения.
Изначально я начал это в C#, который прекрасно подключался, когда SSL был отключен на сервере MQ, получал сообщения и т. д. Однако, когда мы снова включили SSL, я так и не смог пройти аутентификацию. Владелец промежуточного программного обеспечения сказал, что нам придется отправить файл JKS, поскольку именно его сервер MQ будет использовать для аутентификации нашего клиентского сертификата.
Шаг 2.
Затем я изменил файл код на Java 11, и снова, когда SSL отключен, лямбда может прекрасно подключаться и получать сообщения. Когда мы включаем SSL, он никогда не проходит аутентификацию. На сервере MQ всегда возникает ошибка: «AMQ9637E: во время установления связи удаленный партнер не отправил сертификат».
См. мою лямбду Java ниже, где я загружаю jks из ресурсов, а затем пишу ее. в /tmp/keystore.jks, а затем добавьте его как свойство "javax.net.ssl.keyStore":

Код: Выделить всё

InputStream keystoreInputStream = ScheduledLambda.class.getClassLoader()
.getResourceAsStream("/awsfenxdevsit.jks");

if (keystoreInputStream == null) {
context.getLogger().log("Keystore file not found in resources folder...\n");
throw new RuntimeException("Keystore file not found in resources folder");
}
else {
context.getLogger().log("Keystore file was found in resources" + keystoreInputStream);
}

// Copy key.jks to /tmp (for AWS Lambda)
try {
Files.copy(keystoreInputStream, Paths.get("/tmp/keystore.jks"));
} catch (IOException e) {
context.getLogger().log("Error occured: " + e.getMessage());
e.printStackTrace();
}

File trustStoreFile = new File("/tmp/keystore.jks");
if (!trustStoreFile.exists()) {
context.getLogger().log("Truststore not found at /tmp/keystore.jks");
throw new RuntimeException("Truststore not found at /tmp/keystore.jks");
}
else{
context.getLogger().log("Truststore found at /tmp/keystore.jks");
}

// Set Java system properties for SSL
System.setProperty("javax.net.ssl.keyStore", "/tmp/keystore.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "XXXX");
System.setProperty("javax.net.ssl.keyStoreType", "JKS");
Я делаю что-то не так?
У меня достаточно журналов, поэтому я вижу, что jks во-первых находится в ресурсах, а во-вторых, что файл создан и также существует в папке /tmp

Подробнее здесь: https://stackoverflow.com/questions/793 ... e-with-ssl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»