Взаимная аутентификация с Java (с PFX-файлом клиентского сертификата) и без доступа к среде

У меня есть веб-приложение Java Spring Boot, развернутое в службе приложений Azure (не со встроенным Tomcat, а с использованием службы приложений Tomcat PaaS). Это приложение должно сделать вызов к REST API, который защищен обязательной взаимной аутентификацией, т. е. сертификатом клиента.

У меня есть файл PFX, и у меня нет доступа к среде, чтобы добавить сертификат в хранилище ключей, хранилище доверенных сертификатов и т. д.

Есть ли способ вызвать REST API в Java только с сертификатом клиента, который, возможно, является частью ресурсов веб-приложения (или получен из KeyVault)?


person Web User    schedule 28.06.2018    source источник


Ответы (1)


У меня есть файл PFX, и у меня нет доступа к среде, чтобы добавить сертификат в хранилище ключей, хранилище доверенных сертификатов и т. д.

Насколько я понимаю, для использования SSL-сертификата в службе приложений Azure вы можете попробовать выполнить следующие действия:

1) Нажмите «НАСТРОЙКИ > Настройки SSL» вашего веб-приложения, затем нажмите Загрузить сертификат, чтобы загрузить свои сертификаты.

2) Добавьте параметр с именем WEBSITE_LOAD_CERTIFICATES со значением, равным отпечатку ваших сертификатов, к которым будет обращаться код вашего приложения. Кроме того, вы можете просто загрузить сертификат в виде файла в свой код. Сведения, на которые вы можете подписаться Используйте SSL-сертификат в коде вашего приложения в службе приложений Azure.

Более того, если описанный выше подход не соответствует вашим требованиям, вы можете использовать Azure Key Vault в качестве хранилища сертификатов. В качестве простого способа вы можете добавить свои сертификаты через портал Azure, подробности вы можете найти на здесь. Чтобы получить сертификат в своем коде, вы можете использовать примеры аутентификации для Azure Key Vault с помощью Azure Java SDK для аутентификации в хранилище ключей и получения сертификата.

person Bruce Chen    schedule 29.06.2018
comment
Спасибо за предложения. Я могу либо добавить сертификат клиента в настройках SSL, либо получить доступ к Key Vault. Мой вопрос был специфичен для Java; по ссылкам показано, как загрузить сертификат, который по-прежнему является полезной информацией, но не говорит мне, как использовать этот сертификат для выполнения HTTP-вызова. Примеры, с которыми я столкнулся в этой теме, похоже, полагаются на загрузку сертификата из хранилища ключей, и это то, что я не могу перевести для своего варианта использования, получения из файла или хранилища ключей или из настроек SSL. - person Web User; 30.06.2018