Управление цифровыми сертификатами X.509




Для управления сертификатами X.509 используется следующая команда: $ openssl x509 <параметры>

В качестве параметров используются следующие ключи (дефисы перед ключами обязательны):

• -inform <DER|PEM> — формат сертификата во входном файле;

• -outform <DER|PEM> — формат сертификата в выходном файле;

• -in <имя_файла> — указание входного файла;

• -out <имя_файла> — указание выходного файла;

• -<хэш-функция> — указание хэш-функции, используемой для создания сертификата (по умолчанию SHA1, для алгоритма DES всегда используется SHA1);

• -text — вывести информацию о сертификате в текстовой форме;

• -noout — не выводить кодированный вариант запроса на подпись;

• -modulus — вывести длину открытого ключа из сертификата;

• -serial — вывести серийный номер сертификата;

• -subject_hash — вывести хэш от имени субъекта сертификации;

• -issuer_hash — вывести хэш от имени издателя сертификата;

• -subject — вывести имя субъекта сертификации;

• -issuer — вывести имя издателя сертификата;

• -email — вывести все адреса почтовых ящиков, если они указаны в сертификате;

• -ocsp_uri — вывести адрес сервера OCSP, если он указан в сертификате;

• -startdate — вывести дату начала действия сертификата;

• -enddate — вывести дату окончания действия сертификата;

• -dates — вывести обе даты;

• -fingerprint — вывести отпечаток сертификата в формате DER;

• -С — вывести сертификат в формате исходного кода на С;

• -signkey <имя_файла> — сделать входной файл самоподписанным сертификатом с использованием указанного ключа:

- если входной файл — сертификат, то имя издателя устанавливается равным имени субъекта, копируется открытый ключ, дата начала действия устанавливается на текущую дату, а дата окончания действия — на дату через количество дней, указанное в параметре -days;

- если входной файл — запрос на сертификацию, то создаѐтся сертификат с использованием предоставленного ключа, имя субъекта берѐтся из запроса на сертификацию;

• -keyform <PEM|DER> — формат закрытого ключа в файле, указанном параметром -signkey;

• -days — срок действия сертификата в днях (по умолчанию 30);

• -req — указание на то, что в качестве входного файла передаѐтся запрос на сертификацию;

• -set_serial <номер> — установить серийный номер сертификата (используется с параметрами - signkey или -ca);

• -CA <имя_файла> — указывает на файл с сертификатом центра сертификации, который будет

использован для подписи входного файла (используется для подписи запросов на сертификацию с параметром -req);

• -CAkey <имя_файла> — указывает на файл с закрытым ключом центра сертификации;

• -CAserial <имя_файла> — указывает на файл с серийным номером.

Практическая часть

Задание 1. Создание собственного СА сертификата

1. Настройка рабочего место.

1) Для того чтобы созданные ключи, запросы на сертификат, сертификаты и прочее не были перемешаны, рекомендуется создать для себя рабочий каталог mySSL, со следующими подкаталогами:

 

 

В данном случае C:\mySSL\ является рабочим каталогом, содержащим следующие подкаталоги и файлы:

- key - каталог с private-ключами;

- csr - каталог запросов на сертификат (Certificate Signing Request);

- cer - каталог сертификатов, для публичного пользования (Certificate);

- crl - каталог списков отозванных сертификатов (Certificate Revocation List);

- p12 - каталог сертификатов p12, с private-ключом (Personal Information Exchange File);

- database.txt - база данных выпущенных сертификатов;

- serial.txt - файл с текущим серийным номером сертификата.

2) Настройте OpenSSL. Для этого, в рабочем каталоге (C:\mySSL\) надо разместить конфигурационный файл openssl.cfg, после чего можно приступать к созданию сертификатов.

3) Выпустим собственный CA сертификат, для этого получим private-ключ для нашего CA сертификата:

Openssl> genrsa -des3 -out c:\mySSL\key\ca.key 1024

Ключ:

1024 - длина ключа в битах, не рекомендуется устанавливать ее больше данного значения, иначе могут быть проблемы с некоторыми реализациями SSL;

ca.key - имя файла ключа.

 

 

4) Создадим CA сертификат, выполнив команду:

openssl> req -config c:\mySSL\openssl.cfg -new -x509 -days 365 -key c:\mySSL\key\ca.key –out c:\mySSL\ cer\ca.cer –subj "/C=KZ/ST=Kazahstan/L=Taraz/O=MyCompany/OU=CA/CN=localhost"

 

 

Содержимое параметра -subj состоит из сегментов вида /$KEY=$VALUE, где $KEY может принимать такие значения:

- C - country, двухбуквенный код страны, например, RU или US

- ST - state, обычно это регион, область, район и т.д.

- L - locality, обычно это город

- O - organization, название организации

- OU - organization unit, отдел в организации

- CN - common name, обычно это адрес веб-сайта

Ключ:

- days 30 — это количество дней от текущего дня, в течение этого срока сертификат будет считаться действующим.

- ca.key — имя файла с закрытым ключом, созданным на предыдущем шаге

- ca.cеr — имя файла, в который будет записан созданный сертификат ЦС.

5) Откройте паку cer и просмотрите созданный сертификат

6) Сделаем экспорт в PKCS12, упаковав приватный ключ и сам CA сертификат:

Openssl> pkcs12 -export -in c:\mySSL\cer\ca.cer -inkey c:\mySSL\key\ca.key -out c:\mySSL\p12\ca.p12

7) Откройте и просмотрите содержимое папки р12

8) Выполним выпуск дочернего SSL сертификата, для этого сделаем запрос на SSL сертификат:

Openssl>req -config openssl.conf -new -newkey rsa:1024 -keyout key\test.key -nodes -out csr\test.csr -subj "/C=RU/ST=Russia/L=Moscow/O=MyCompany/OU=IT Departament/CN=localhost"

9) Подтвердим запрос на сертификат cjplfyysvCA сертификатом (подпишим серификат нашим CA сертификатом):

Openssl> ca -policy policy_any -config openssl.conf -in csr\test.csr -days 360 -out cer\test.cer

10) Сделайте экспорт в PKCS12 полученного SSL сертификата:

Openssl> pkcs12 -export -out p12/test.p12 -in cer/test.cer -inkey key/test.key

11) Для того чтобы добавить созданные сертификаты (PKCS12) в хранилище сертификатов надо в консоли управления оснастками (команда mmc) добавить оснастку "Сертификаты" для локальной машины, после чего, импортировать сертификаты и список отозванных сертификатов в соответствующие папки (в папку "Личные" и "Доверенные корневые центры сертификации").

 

12) Данные сертификата (проверить кем выдан):

 

 

 

Задание 2. Работа с сертфикатами в формате PEM

PEM - текстовый формат, в нём возможно хранение как сертификатов и секретных ключей, так и прочей информации. Возможно объединение нескольких PEM-файлов в один простым cat.

1. Просмотр содержимого CSR:

Openssl> req -noout -text -in c:\mySSL\csr\test.csr.csr

2. Отобразить информацию о сертификате в формате PEM:

Openssl> x509 -text -in c:\mySSL\cer\ca.cer

 

3. Просмотр отпечатков сертификата:

Openssl> x509 -fingerprint -noout -in c:\mySSL\cer\ca.cer (хеш MD5, для SHA1 добавить ключ -sha1).

4. Проверка секретного ключа и подписанного сертификата сравнением вывода (должен быть одинаковым):

Openssl> rsa -noout -modulus -in c:\mySSL\key\ca.key

openssl> x509 -noout -modulus -in c:\mySSL\cer\ca.cer

 

5. Отобразить информацию о закрытом ключе:

Openssl> rsa -text -in c:\mySSL\key\ca.key

 

Лабораторная работа №5.

Тема: Создание центра сертификации с поддержкой списков отозванных сертификатов с применением пакета OpenSSL

Цель работы: получить навык применения программного продукта OpenSSL для создания центра сертификации, выпуска, верификации и отзыва сертификатов, изучить формат списков отзыва сертификатов.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: