Разница между самозаверяющим ЦС и самозаверяющим сертификатом
Я не совсем понимаю разницу между ключом CA и сертификатом. Разве ключ CA не является просто сертификатом? Позвольте мне попытаться прояснить это на примере.
У меня есть клиент и сервер. Я только пытаюсь проверить свое соединение с моим сервером и не пытаюсь установить доверие к другим, поэтому я не забочусь о подписании с реальным CA.
Вариант 1: создать самозаверяющий CA ( ssCA) и использовать это, чтобы подписать сертификат (C). Затем я устанавливаю ssCA в корневое хранилище ключей на моем клиенте и настроить мой сервер, чтобы использовать сертификат C.
Вариант 2: создать самозаверяющий сертификат ( SSC). Установить SSC в корневое хранилище ключей на моем клиенте. Настройка моего сервера для использования сертификата SSC.
второй вариант кажется гораздо более простой процесс. Должно ли это все еще работать?
4 ответов:
оба варианта действительны, вариант 2 проще.
Вариант 1 (настройка собственного ЦС) предпочтительнее, когда вам нужно несколько сертификатов. В компании вы можете настроить свой собственный ЦС и установить сертификат этого ЦС в корневом хранилище ключей всех клиентов. Тогда эти клиенты будут принимать все сертификаты, подписанные центром сертификации.
Вариант 2 (самоподписание сертификата без ЦС) проще. Если вам просто нужен один сертификат, то этого достаточно. Установите его в хранилища ваших клиентов, и вы сделали. Но когда вам нужен второй сертификат, вам нужно установить его снова на всех клиентах.
вот ссылка с дополнительной информацией: создание центров сертификации и самозаверяющих сертификатов SSL
во-первых, о различии между ключом и сертификатом (относительно "ключа CA"), есть 3 части, используемые при разговоре о сертификатах открытого ключа (обычно X. 509): открытый ключ, закрытый ключ и сертификат. Открытый ключ и закрытый ключ образуют пару. Вы можете подписывать и расшифровывать с помощью закрытого ключа, вы можете проверять (подпись) и шифровать с помощью открытого ключа. Открытый ключ предназначен для распространения, в то время как закрытый ключ предназначен для хранения частный.
сертификат открытого ключа-это комбинация между открытым ключом и различными фрагментами информации (в основном относительно личности владельца пары ключей, кто бы ни контролировал закрытый ключ), эта комбинация подписывается с использованием закрытого ключа эмитента сертификата. Сертификат X. 509 имеет отличительное имя субъекта и отличительное имя издателя. Имя издателя - это имя субъекта сертификата организации, выдающей сертификат. Самоподписанные сертификаты-это особый случай, когда поставщик и субъект совпадают. Подписывая содержание сертификата (т. е. выдавая сертификат), эмитент утверждает его содержание, в частности, привязку между ключом, идентификатором (субъектом) и различными атрибутами (которые могут указывать на намерение или область использования сертификата).
кроме того, спецификация PKIX определяет расширение (часть данного сертификата), которое указывает, является ли a сертификат может использоваться в качестве сертификата CA, то есть может ли он использоваться в качестве издателя для другого сертификата.
из этого вы создаете цепочку сертификатов между сертификатом конечного объекта (который вы хотите проверить для пользователя или сервера) и сертификатом CA, которому Вы доверяете. Между сертификатом конечного объекта службы и сертификатом ЦС, которому Вы доверяете, могут быть промежуточные сертификаты ЦС (выданные другими сертификатами ЦС). Вам не нужно в корень CA вверху (самозаверяющий сертификат CA), но это часто бывает (вы можете выбрать доверять промежуточному сертификату CA напрямую, если хотите).
для вашего варианта использования, если вы создаете самозаверяющий сертификат для определенной службы, имеет ли он флаг CA (расширение основных ограничений) на самом деле не имеет значения. Вам понадобится сертификат CA, чтобы иметь возможность выдавать другие сертификаты (если вы хотите создать свой собственный PKI). Если сертификат, который вы создаете для этой службы это сертификат CA, он не должен причинить никакого вреда. Более важно то, как вы можете настроить свой клиент для доверия этому сертификату для этого конкретного сервера (браузеры должны позволить вам сделать явное исключение довольно легко, например). Если механизм конфигурации следует за моделью PKI (без использования определенных исключений), поскольку нет необходимости создавать цепочку (только с одним сертификатом), вы должны иметь возможность импортировать сертификат непосредственно как часть якоря доверия вашего клиента, является ли это сертификатом CA или нет (но это может зависеть от механизма конфигурации клиента).
вы можете
openssl x509 -noout -text -in $YOUR_CERTчтобы увидеть различия между содержимым файлы:в вашем самоподписанном CA, вы можете увидеть:
X509v3 extensions: X509v3 Basic Constraints: CA:TRUE, pathlen:0и в свой самоподписанный сертификат, это:
X509v3 extensions: X509v3 Basic Constraints: CA:FALSE
У вас всегда должен быть корневой ЦС, у ЦС есть ключ, который можно использовать для подписи сертификата более низкого уровня и корневого сертификата, который может быть встроен в принятые корневые сертификаты на клиенте и используется для проверки более низких сертификатов, чтобы проверить их действительность. Самоподписанный просто означает, что вы являетесь своим собственным CA. При создании самозаверяющего сертификата вы создаете ЦС, а затем подписываете сертификат сайта с этим ЦС.
Comments