Назад | Перейти на главную страницу

Как создать клиентские SSL-сертификаты для персонала с помощью CaCert CA?

Я хочу ограничить доступ к домашней странице с помощью клиентских SSL-сертификатов. Большинство учебных пособий в Интернете описывают это так:

  1. создать собственный ключ CA.key
  2. создать серверный ключ server.key (самоподписанный)
  3. подписать server.key с помощью CA.key
  4. создать (несколько) клиентских ключей client_xx.key
  5. подписать client_xx.key с помощью CA.key

Я не хочу подписывать свой ключ сервера самостоятельно, но вместо этого использую 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.