Почему использование сертификата, сделанного с помощью инструмента MakeCert, плохо работает?

В настоящее время я работаю над проектом, в котором я создал сертификат CA и пару дочерних сертификатов для этого сертификата CA. Сертификаты будут использоваться для защиты межсерверной связи в настройке SAMLV2, поэтому я собираюсь получить сертификат для поставщика удостоверений и сертификат для поставщика услуг. Пользователь/браузер не собирается проверять сертификаты, так что это только серверы, которым нужно доверять мой пользовательский ЦС. Мое дерево cert выглядит примерно так:

  • CustomRootCACert
    • CustomIdentityProviderCert
    • CustomServiceProviderCert

Теперь я слышал, как многие говорили, что плохо использовать домашний сертификат на производстве. Но когда я спрашиваю, почему, люди обычно что-то бормочет о безопасности, но никогда не заходят в подробности. Существуют ли технические причины не использовать мои собственные сертификаты в производстве? Я не могу придумать никаких... Конечно, я понимаю, что если я потеряю контроль над своим корневым сертификатом, любой может начать создавать всевозможные сертификаты. Но в этом случае они также должны будут установить сертификаты на своих серверах и настроить приложение saml для их использования. Только тогда они могут начать генерировать поддельные запросы saml и ответы на мои приложения.

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

Ответ 1

Спросите себя, что подтверждает сертификат.

Если вы получаете сертификат, выданный авторитетным ЦС, то это доказывает, что владелец сертификата подтвердил свою личность с этим ЦС, до их стандартов доказательства.

Если вы получаете сертификат, выданный специальным CA, то он доказывает, что кто-то знает, как создавать сертификаты.

Если вы контролируете оба конца разговора, я думаю, что это хорошо, если у вас есть собственный CA. Вероятно, вы действительно можете сделать это очень безопасным (сохраняя секретный ключ CA в безопасном месте в автономном режиме и делая подписку на упражнение sneakernet).

Ответ 2

Поскольку вы используете сертификат только для защиты сетевого трафика, а не для аутентификации пользователей/компьютеров, то это похоже на то, что вы используете законченное использование для использования MakeCert.exe.

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

Рассмотрим эти точки:

  • (Почти) Все версии Windows Server включают службы сертификационного сервера бесплатно
  • Windows Stand-Alone CA Server чрезвычайно прост в установке и настройке
  • Windows Stand-Alone CA Server может быть установлен на виртуальной машине и включен/выключен, когда вам нужно предоставить дополнительный сертификат
  • Автономный CA-сервер на базе виртуальной частной сети можно запускать с использованием очень маленькой памяти (например, 256 МБ)
  • Windows Stand-Alone CA Server включает в себя приятный и чистый веб-интерфейс регистрации для упрощения запроса сертификатов.
  • Проверка CRL может использоваться или не использоваться в зависимости от ваших потребностей.

В прошлом я сначала начал с selfssl.exe и в конечном итоге перешел в MakeCert.exe для создания корневого сертификата, а затем выдал мои клиентские сертификаты. Но после борьбы с синтаксисом и всегда помню, где я помещаю этот Root Certificate, я перешел на использование автономного корневого CA на виртуальной машине.

Ответ 3

ЕСЛИ сертификаты передаются только внутри, между вашими собственными серверами (и не используются клиентом, так или иначе) - тогда вполне приемлемо использовать собственный внутренний CA.
ОДНАКО, одно предложение - у вас нет Root CA для выдачи сертификатов вашего провайдера. Вместо этого используйте свой корневой ЦС для создания промежуточного ЦС, а затем используйте его для выдачи сертификатов поставщика. Это поможет вам получить более длительный срок, когда вам нужно будет начать управлять истечением срока действия сертификата, расширять систему/инфраструктуру, списки отзыва и т.д.

Ответ 4

Нет реальной проблемы с использованием самоподписанного сертификата в частном пользовании, который используется при управлении всеми системами, которым необходимо доверять корневому сертификату homebrew.

Вы вручную устанавливаете свой корневой сертификат на каждую из систем, которым нужно доверять.

Вы можете сделать это в процессе производства, а также для использования браузером - например, в организации, где root ca может быть развернут с помощью метода распространения программного обеспечения - нет причин идти за счет оплаты Центра сертификации, который Microsoft доверять.

[править] Что касается secruity, проблема заключается в том, что один из них содержит закрытый ключ для вашего корневого сертификата, если вы можете гарантировать, что он остается закрытым, тогда вы можете проверить сертификат с этого корня.