В настоящее время я работаю над проектом, в котором я создал сертификат CA и пару дочерних сертификатов для этого сертификата CA. Сертификаты будут использоваться для защиты межсерверной связи в настройке SAMLV2, поэтому у меня будет сертификат для поставщика удостоверений и сертификат для поставщика услуг. Пользователь/браузер не будет проверять сертификаты, поэтому доверять моему пользовательскому ЦС нужно только серверам. Мое дерево сертификатов выглядит примерно так:
- CustomRootCACert
- CustomIdentityProviderCert
- Кустомсервицепровидерсерт
Так вот, я слышал много людей, говорящих, что использовать самодельный сертификат в продакшене плохо. Но когда я спрашиваю, почему, люди обычно просто бормочут что-то о безопасности, но никогда не вдаются в подробности. Есть ли технические причины не использовать мои собственные сертификаты в производстве? Я не могу придумать ни одного... Конечно, я понимаю, что если я потеряю контроль над своим корневым сертификатом, кто угодно может начать создавать всевозможные сертификаты. Но в этом случае им также придется установить сертификаты на мои серверы и настроить saml-приложение для их использования. Только тогда они могли начать генерировать поддельные saml-запросы и ответы на мои приложения.
Если это единственная проблема, это решение (с использованием самодельных сертификатов в производственной среде) все равно будет лучше, чем настройка входа в систему, которая у нас есть сегодня.