Хорошо,
Поскольку это может помочь другим, я собираюсь изложить то, что мои различные тесты помогли мне выяснить.:
- Я правильно понял?
Насколько я могу судить: Да Почему я не могу быть в этом уверен?Потому что я сталкиваюсь с некоторыми ограничениями тестирования из-за своей среды разработки и того факта, что у меня не может быть настоящего действительного сертификата с действительным доменом для его тестирования.
Если я должен подписать сертификаты своих клиентов, что они должны отправить мне, чтобы подпись была возможной? Итак, что им нужно отправитьвозможной подписью является CSR (запрос на подпись сертификата) и их открытый ключ.
Можно ли это сделать без вызова утилиты keytool
?Я хотел бы, насколько это возможно, использовать java для этого и не полагаться на ОС. Это можно сделать с помощью библиотеки Bouncycastle.Я использую следует , потому что я не стал его реализовывать, подробнее об этом позже.
Если мой сертификат CA получен из доверенного центра и я использую его для подписи сертификатов своих клиентов, те, которые по-прежнему считаются самоподписанными сертификатами? Ядо сих пор неясно, но, похоже, существует какая-то область действия при подписании сертификата, которая не позволяет кому-либо подделать действительный центр сертификации.Любой, кто может придать больше уверенности в этом, приветствуется.
То, что я на самом деле сделал в итоге:
Быть нашим собственным ЦС было бы слишком большим препятствием, так чтона самом деле мы собираемся попросить наших клиентов получить их сертификаты от известного CA и добавить эти сертификаты CA в наше доверенное хранилище.Это тот же принцип, что и раньше, но вместо того, чтобы играть в CA, мы будем использовать реальные источники CA.
Надеюсь, это поможет всем, кто будет выполнять какие-то эквивалентные требования.