Клиент веб-службы CXF SSL с несколькими сертификатами - PullRequest
4 голосов
/ 27 июля 2010

У меня есть клиент Java CXF, который подключается к защищенной SSL веб-службе с взаимной аутентификацией.У меня правильно настроено хранилище ключей и хранилище доверенных сертификатов на стороне клиента, и оно работает нормально.

Меня беспокоит тот факт, что мое хранилище ключей содержит только один клиентский сертификат, а в конфигурации CXF невозможно сказать «хорошо, для этой связи SSL вы будете использовать этот сертификат».
КакУ меня только один сертификат, не сложно выбрать подходящий для рукопожатия CXF durign SSL.Но этот клиент будет развернут в среде, где он будет использоваться с несколькими возможными клиентами, имеющими собственный сертификат, и каждый из них будет подписан одним и тем же центром сертификации.Когда сервер запросит сертификат клиента, подписанный определенным органом, не будет возможности отличить один сертификат от другого.
Как я могу сказать CXF (или Java) использовать надлежащий сертификат в этом контексте?

Нужно ли создавать столько контекста SSL, сколько клиентских сертификатов?(т. е. имея N хранилищ ключей, каждый из которых содержит только один сертификат).Или есть способ (в CXF conf или в Java) сказать «использовать этот сертификат в этом контексте»?

Заранее благодарен за помощь.

Ответы [ 2 ]

0 голосов
/ 10 августа 2010

Я не знаю, подходит ли вам эта опция, но я уже делал динамический выбор псевдонима с использованием WSIT (т. Е. Одно хранилище ключей, много записей личного ключа)См. эту статью для более подробной информации.(Дайте мне знать, если этой статьи недостаточно - я могу опубликовать более подробно, если вам нужно)

0 голосов
/ 28 июля 2010

Все сертификаты должны относиться к одному и тому же клиенту, в противном случае центры сертификации не выполняют своих обязанностей.Таким образом, они все должны иметь, например, одну и ту же тему X500Principal.Так зачем вам конкретный сертификат?Все они идентифицируют одного и того же клиента, поэтому с точки зрения аутентификации они все эквивалентны.

Звучит так, как будто вы хотите использовать определенный сертификат для авторизации , а непросто установить личность через аутентификацию.Если это так, то это неправильный подход, злоупотребление PKI.Авторизация - это контролируемый приложением шаг, если у вас есть аутентифицированная идентификационная информация: получите идентификационную информацию сертификата однорангового узла и посмотрите свою базу данных авторизации, чтобы узнать, разрешено ли этой идентификационной информации доступ к этой части приложения.Не пытайтесь использовать файл cacerts в качестве базы данных авторизации, это не то, для чего он нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...