Я хочу ограничить доступ к домашней странице с помощью клиентских SSL-сертификатов. Большинство учебных пособий в Интернете описывают это так:
Я не хочу подписывать свой ключ сервера самостоятельно, но вместо этого использую CaCert. Поэтому я пропустил первый шаг. Но когда я хочу создать клиентские сертификаты, какой ключ мне нужно использовать? У меня нет CaCerts CA.key.
Очевидно, что вы не получите ключ CACert, так как это испортит всю систему. Вместо этого вам нужно создать «запрос на подпись сертификата» (он же CSR) вместе с новым закрытым ключом и отправить этот CSR в CACert для его подписи (что в результате даст вам действительный подписанный сертификат).
Если вы используете openssl ca
для управления сертификатами вы можете использовать что-то вроде
openssl req -new -key client1.key -out client1.csr
и вставьте содержимое client1.csr в форму запроса сертификата CACert.
Вам также следует взглянуть на Документация CACert по генерации CSR который посвящен именно этой теме более подробно.
Я не совсем уверен, но, поскольку никто не отвечает, вот мое мнение.
Единственный объект, который может подписывать сертификаты, - это ЦС. Существуют разные уровни центров сертификации, поэтому теоретически вы можете создать свой собственный центр сертификации, подчиненный CaCert (и, следовательно, иметь свой собственный сертификат CA, подписанный CaCert). В результате обычные сертификаты, которые вы подписываете, будут участвовать в цепочке доверия длиной 3 (а не двух).
Из того, что я почерпнул из эта страница, каким-то образом возможно стать «членом CACert» и получить так называемый «субкорневой» сертификат - этот сертификат позволит вам подписать свои собственные сертификаты и сделать их доверенными для всех, кто доверяет корневому сертификату CACert (при условии вы также тем или иным образом делаете доступным сертификат подчиненного ЦС - например, сервер, использующий сертификаты в формате PEM, может использовать файл сертификата, который представляет собой просто конкатенацию сертификата сервера и сертификата ЦС в формате PEM).
Мой личный опыт работы с такого рода установкой заключался в следующем: некоторое время назад федерация xmpp.net предоставила бесплатные сертификаты для любого сервера XMPP, администратор которого хотел его получить. Эта федерация сама была подчиненной CA по отношению к StartCom. Поэтому после получения сертификата сервера мне нужно было сказать своему серверу, чтобы он представил как собственный сертификат, так и сертификат xmpp.net в одном пакете, чтобы сделать цепочку доверия для своих клиентов завершенной, поскольку они обычно доверяют StartCom, но не xmpp.net.