Программно получить сертификаты Glassfish? - PullRequest
4 голосов
/ 04 августа 2011

Мне просто не удается найти объяснение того, как я могу программно получить сертификат из хранилища ключей Glassfish из приложения, работающего на Glassfish, если не считать фактического указания локального системного пути к хранилищу ключей.

Предположительно, есть какая-то возможность доступа к ним из приложения для выполнения полезной работы?Мой пример использования следующий: я просто хотел бы получить хранилище ключей контейнера и использовать сертификат клиента для аутентификации на удаленном сервере.

1 Ответ

4 голосов
/ 05 августа 2011

Недавно у меня была такая же проблема с WebSphere. Мы развертывали приложение, которое требовалось для доступа к другим приложениям через TLS с аутентификацией клиента. Поэтому нашей первой мыслью было повторно использовать сертификат TLS сервера для этой цели. Не было никакого способа сделать это, кроме как указать путь к ресурсу хранилища ключей. Я думаю, что объяснение документации WebSphere было чем-то вроде «разделения интересов» - хранилище ключей SSL / TLS предназначалось только для проверки подлинности сервера для подключений к нему, а не для чего-либо еще.

Аргумент является вполне допустимым, если учитывать поля «Использование ключа / Расширенное использование ключа» и «Отличительное имя» такого «сертификата сервера». DN - это имя хоста сервера (используется для проверки имени хоста), а расширенное использование ключа является «аутентификацией сервера» большую часть времени.

Хотя ваше намерение по-прежнему будет действительным, если в сертификате дополнительно будет использоваться расширенное использование ключа «аутентификация клиента» (в нашем случае это было так). Если это произойдет, то IMO будет допустимо повторно использовать сертификат для этой цели.

Но лучший аргумент, который я услышал в обсуждении, был следующим: рабочие серверы обслуживались другой группой людей, нежели настоящие разработчики приложений. Если разработчики приложения захотят повторно использовать файл хранилища ключей сервера, то сопровождающие сервера должны будут сообщить им пароль или по крайней мере предоставить разрешения на чтение приложению для чтения файла, содержащего пароль хранилища ключей. И то, и другое было неприемлемо для их политик безопасности.

...