Самозаверяющий сертификат в производственной среде для внутренних вызовов HTTPS? - PullRequest
0 голосов
/ 23 октября 2018

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

1 Ответ

0 голосов
/ 25 октября 2018

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

Не рекомендуется использовать самозаверяющие сертификаты в производственной среде, поскольку вы теряете управление сертификатом в течение жизненного цикла.Допустим, если клиент скомпрометирован, любой, кто владеет этим самозаверяющим сертификатом, может общаться с сервером.Вы не сможете отозвать этот сертификат или сохранить CRL.

Идеальным решением / реализацией в вашем случае будет на самом деле выдача клиентам их собственных PKCS12 из ЦС, а это значит, что они будутиметь собственный закрытый ключ (это может дорого обойтись, если у вас много клиентов).Но это самый безопасный способ сделать это.Если вы знаете, что клиент скомпрометирован, вы можете отозвать сертификат этого клиента из ЦС, и если клиент выполняет проверку сертификата (в идеале, должен), он больше не сможет обмениваться данными с сервером.Вы можете просто списать этого клиента.

Просто идея

Но если вы ищете экономически эффективный способ (так как вы упомянули внутренние звонки), вы могли бы иметь свой сервервыдайте P12 клиентам, и ваш сервер будет вести учет того, какой клиент имеет какой сертификат.Это дает вам небольшой контроль над управлением клиентами.Вы можете включить аутентификацию на основе сертификатов на стороне сервера для этих сервисов (сервер получит subjectDN клиента), и, ссылаясь на сохраненную запись, вы можете определить, какой клиент пытается установить связь.И если вы хотите отключить обслуживание этого клиента сервером, просто обновите запись.

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

...