Для системы с несколькими серверами приложений и несколькими клиентами я хотел бы ввести взаимную аутентификацию, а также другие меры безопасности, предоставляемые TLS.
Серверы и клиенты могут находиться как в разных сетях, так и в одной сети.
У каждого объекта (клиента или сервера) есть собственное хранилище ключей, в котором хранится пара закрытый/открытый ключ и сертификат X.509, в который заключен открытый ключ. Но на данный момент сертификат является самоподписанным. Таким образом, это не будет проверено другими взаимодействующими объектами. После некоторых исследований я рассмотрел некоторые решения:
- Создание частного ЦС, который будет подписывать сертификаты. Насколько я понимаю, сертификат ЦС должен присутствовать в хранилище доверенных сертификатов каждого объекта, чтобы сертификаты других объектов можно было проверить с использованием сертификата ЦС.
- Создание частного центра сертификации в качестве первого решения. Но сертификат частного ЦС подписан коммерческим ЦС (например, Verisign). Я не знаю, что это добавляет к предыдущему решению.
- Подписание сертификата каждого объекта коммерческим ЦС. Но это решение кажется дорогим.
- Использование только самоподписанных сертификатов. Сертификат каждого объекта является самоподписанным им и должен быть добавлен в хранилище доверенных сертификатов каждого объекта, с которым он хочет взаимодействовать.
Это мой первый опыт работы с безопасностью. Какое из решений, которые вы считаете правильными, вы рекомендуете?
Спасибо