Во-первых, что касается различия между ключом и сертификатом (в отношении «ключа CA»), при разговоре о сертификатах открытого ключа (обычно X.509) используются 3 части: открытый ключ, закрытый ключ и сертификат. Открытый ключ и закрытый ключ образуют пару. Вы можете подписать и расшифровать с помощью закрытого ключа, вы можете проверить (подпись) и зашифровать с помощью открытого ключа. Открытый ключ предназначен для распространения, а закрытый ключ предназначен для хранения в секрете.
Сертификат открытого ключа - это комбинация открытого ключа и различных частей информации (в основном, касающихся личности владельца пары ключей, который контролирует закрытый ключ), эта комбинация подписывается с использованием закрытого ключа эмитента сертификат. Сертификат X.509 имеет отличительное имя субъекта и отличительное имя издателя. Имя издателя - это имя субъекта сертификата организации, выдающей сертификат. Самоподписанные сертификаты - это особый случай, когда издатель и субъект совпадают. Подписывая содержимое сертификата (т. Е. Выдавая сертификат), издатель утверждает его содержимое, в частности, связь между ключом, идентификатором (субъектом) и различными атрибутами (которые могут указывать на намерение или объем использования для сертификат).
Вдобавок к этому, спецификация PKIX определяет расширение (часть данного сертификата), которое указывает, может ли сертификат использоваться в качестве сертификата CA, то есть может ли он использоваться в качестве эмитента для другого сертификата.
Исходя из этого, вы строите цепочку сертификатов между сертификатом конечного объекта (который вы хотите проверить для пользователя или сервера) и сертификатом CA, которому вы доверяете. Между сертификатом конечного объекта вашей службы и сертификатом ЦС, которому вы доверяете, могут быть промежуточные сертификаты ЦС (выданные другими сертификатами ЦС). Вам не обязательно нужен корневой ЦС наверху (самоподписанный сертификат ЦС), но это часто бывает (при желании вы можете напрямую доверять промежуточному сертификату ЦС).
В вашем случае, если вы создаете самозаверяющий сертификат для определенной службы, не имеет значения, есть ли у него флаг CA (расширение базовых ограничений). Вам понадобится сертификат CA, чтобы иметь возможность выдавать другие сертификаты (если вы хотите создать свой собственный PKI). Если сертификат, который вы генерируете для этой службы, является сертификатом CA, он не должен причинить вреда. Более важно то, как вы можете настроить своего клиента для доверия этому сертификату для этого конкретного сервера (например, браузеры должны позволять вам довольно легко создавать явное исключение). Если механизм конфигурации следует модели PKI (без использования конкретных исключений), поскольку нет необходимости создавать цепочку (только с одним сертификатом), вы должны иметь возможность импортировать сертификат напрямую как часть якорей доверия ваш клиент, будь то '