Клиент, вызывающий REST API, предоставляется через Tomcat, развернутый на AWS с использованием https

У меня есть мой код Java, развернутый на Tomcat в AWS и на уровне 1, у меня есть балансировщик нагрузки, настроенный с открытым и закрытым ключом, созданным с помощью следующих команд.

openssl genrsa -out server_privatekey.pem 1024
openssl req -new -key server_privatekey.pem -out server_certificate_csr.pem
openssl x509 -req -days 3650 -in server_certificate_csr.pem -signkey server_privatekey.pem -out server_certificate.pem

Теперь основная трудность, с которой я сталкиваюсь, заключается в следующем:

У меня есть android-приложение, которое вызывает этот REST API, теперь я хочу вызвать API из Android, но это потребует от меня передать некоторую форму аутентификации на сервер. Я не могу понять, что бы это могло быть. Если бы кто-нибудь мог указать мне на конкретный ресурс, это было бы действительно полезно.

(Примечание: Я уже разместил этот вопрос на форуме AWS, но ответа пока нет: https://forums.aws.amazon.com/thread.jspa?threadID=64432 ).

1 ответ

  1. Я смог вызвать REST API с помощью HTTPS. На стороне клиента я загрузил сертификат и создал хранилище доверия из него, используя следующую команду

    keytool -importcert -keystore secure.ts -storepass 12345678 -file <cert>
    

    а затем при вызове REST API с помощью команды URL я использовал следующее свойство.

    System.setProperty("javax.net.ssl.trustStore", "<trust store path eg: secure.ts from above command>");
            System.setProperty("javax.net.ssl.trustStorePassword", "12345678");