Изначально я начал это в 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
Мобильная версия