Как создать корневой сертификат X509 и распространить подчиненные сертификаты

Я искал как создавать сертификаты X509 и немного запутался. Я понимаю теорию, и создание одного сертификата — это нормально, но у меня нет операционных ноу-хау для создания системы в целом.

Вот требования:

1) Будет один главный сервер. SSL-сертификат для этого не будет подписан никаким органом: это корень. Этот сертификат (или, по крайней мере, средства его проверки) будет распространяться вместе с приложением.

2) Может быть любое количество вторичных серверов. Каждый будет генерировать свой собственный сертификат и отправлять его на главный сервер.

3) Главный сервер будет подписывать вторичные сертификаты корнем.

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

Н.Б. Главный сервер идентифицируется по DNS-имени хоста. Вторичные серверы могут быть названы или могут быть идентифицированы только по IP-адресу.


Четыре вопроса:

Может кто-нибудь показать мне команды openssl для выполнения каждого из этих трех шагов?

Какие из файлов, созданных на этих этапах, если таковые имеются, нельзя распространять?

После шага 3 должен ли главный сервер возвращать измененный сертификат вторичному?

Должны ли вторичные сертификаты распространяться доверенным мастером, или клиенту достаточно проверить любой сертификат, объявленный вторичным?


person spraff    schedule 12.10.2011    source источник


Ответы (1)


OpenSSL поставляется со скриптом, полезным для создания базового ЦС: CA.pl. . (Конечно, вы можете настроить его более подробно, изменив файл конфигурации OpenSSL.)

Вторичные серверы должны генерировать запросы сертификатов (CSR), которые ЦС может обрабатывать для выдачи сертификатов (после процесса проверки по вашему выбору).

Что касается распространения файлов: все стороны должны хранить свои закрытые ключи в секрете.

person Bruno    schedule 06.01.2012