Jboss EAP 7 - динамическая аутентификация SSL для клиентов REST API - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь разобраться с некоторыми вопросами о SSL-сертификатах и ​​их подписании.

Моя потребность: мне нужно иметь возможность добавить (сгенерировать?) Клиентский сертификат, чтобы позволить им использовать мой API.

Моя проблема: Похоже, что Wildfly необходимо перезагрузить, если хранилище доверенных сертификатов Java было изменено, чтобы изменения были доступны.

Что я понял: Это неправильный подходПроблема и что нужно сделать, это следующее:

  1. Получить сертификат CA от доверенного органа
  2. Добавить этот сертификат в мое хранилище ключей
  3. Использовать этот сертификат для подписисертификаты клиентов

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

Вопросы:

  1. Правильно ли я понял?
  2. Если я должен подписать сертификаты своих клиентов, что они должны отправить мне, чтобы подпись была возможной??
  3. Можно ли это сделать без вызова утилиты keytool?Я хотел бы, насколько это возможно, использовать java для этого и не полагаться на ОС.
  4. Если мой сертификат CA поступает из доверенного органа, и я использую его для подписи своих сертификатов клиентов, те, которые по-прежнему учитываютсякак самоподписанный сертификат?

Спасибо за все указатели, которые вы могли бы предоставить.

1 Ответ

0 голосов
/ 29 мая 2018

Хорошо,

Поскольку это может помочь другим, я собираюсь изложить то, что мои различные тесты помогли мне выяснить.:

  1. Я правильно понял?

Насколько я могу судить: Да Почему я не могу быть в этом уверен?Потому что я сталкиваюсь с некоторыми ограничениями тестирования из-за своей среды разработки и того факта, что у меня не может быть настоящего действительного сертификата с действительным доменом для его тестирования.

Если я должен подписать сертификаты своих клиентов, что они должны отправить мне, чтобы подпись была возможной?

Итак, что им нужно отправитьвозможной подписью является CSR (запрос на подпись сертификата) и их открытый ключ.

Можно ли это сделать без вызова утилиты keytool?Я хотел бы, насколько это возможно, использовать java для этого и не полагаться на ОС.

Это можно сделать с помощью библиотеки Bouncycastle.Я использую следует , потому что я не стал его реализовывать, подробнее об этом позже.

Если мой сертификат CA получен из доверенного центра и я использую его для подписи сертификатов своих клиентов, те, которые по-прежнему считаются самоподписанными сертификатами?

Ядо сих пор неясно, но, похоже, существует какая-то область действия при подписании сертификата, которая не позволяет кому-либо подделать действительный центр сертификации.Любой, кто может придать больше уверенности в этом, приветствуется.

То, что я на самом деле сделал в итоге:

Быть нашим собственным ЦС было бы слишком большим препятствием, так чтона самом деле мы собираемся попросить наших клиентов получить их сертификаты от известного CA и добавить эти сертификаты CA в наше доверенное хранилище.Это тот же принцип, что и раньше, но вместо того, чтобы играть в CA, мы будем использовать реальные источники CA.

Надеюсь, это поможет всем, кто будет выполнять какие-то эквивалентные требования.

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