Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Список сертификатов и ключей

При организации удаленного доступа с помощью протокола IPsec на маршрутизаторах ESR в конфигурациях IPsec туннелей указываются некоторые сертификаты и ключи, необходимые для корректного поднятия и установления IPsec туннеля. Все служебные файлы, которые используются при работе с IPsec на ESR перечислены в таблице 2:


Таблица 2 - Список файлов сертификатов и ключей, используемых в туннелях IPsec

Название сертификата/ключаЧасто используемое имяСовпадение данных на удаленных пирахОписание
Сертификат удостоверяющего центра

ca.crt

ca-crt.pem

ОбязательноСертификат удостоверяющего центра, через который выписаны сертификаты для IPsec пиров
Список сертификатов отозванных удостоверяющим центром

ca.crl

ca-crl.pem

НеобязательноСписок отозванных удостоверяющим центром сертификатов, отозванные сертификаты не могут принимать участие в установлении IPsec туннеля между пирами
Приватный RSA ключ IPsec пира

server.key

server-key.pem

ИсключеноПриватный RSA ключ IPsec пира формата PKCS#8 в открытом (PEM) формате, используется в процессе IPsec аутентификации
X.509 сертификат IPsec пира

server.crt

server-crt.pem

ИсключеноСертификат X.509, содержащий публичный ключ и метаинформацию о IPsec пире, используется в процессе IPsec аутентификации

Создание файлов сертификатов и ключей

Предварительная подготовка

Перед тем, как начать генерировать файлы для работы IPsec, необходимо выполнить следующие подготовительные действия:

1) Установить в ОС пакеты openssl:

apt install openssl

2) Создать директорию, в которой будет удобно хранить сгенерированные сертификаты и ключи и перейти в неё:

mkdir ~/openssl-ca
cd ~/openssl-ca/

3) Создать в директории ряд служебных директорий и файлов:

# Директории под сертификаты, списки отозванных сертификатов, промежуточные сертификаты, приватные ключи, служебные файлы и запросы на сертификацию
mkdir certs crl newcerts private common csr

# Создадим пустой индекс, в него будет записываться информация о всех сертификатах, выпущенных УЦ
touch index.txt
# Укажем серийный номер, с которого начнется индексация подписываемых УЦ сертификатов
echo 1000 > serial

# Укажем серийный номер, с которого начнется индексация списка отозванных сертификатов
echo 1000 > crlnumber

4) Создадим файл конфигурации openssl - openssl.cnf, необходимый для корректного создания и подписи сертификатов и ключей. Содержимое файла должно выглядеть следующим образом:

# Блок общих настроек УЦ
[ ca ]
default_ca = CA_default

# Блок настроек УЦ
[ CA_default ]
# Пути до различных служебных директорий и файлов
dir               = .
certs             = $dir/certs
crl_dir           = $dir/crl
new_certs_dir     = $dir/newcerts
database          = $dir/index.txt
serial            = $dir/serial
RANDFILE          = $dir/private/.rand

# Приватный ключ и сертификат УЦ. После их создания можно будет не указывать пути до них в команде "openssl ca"
private_key       = $dir/private/ca_key.pem
certificate       = $dir/certs/ca_crt.pem

# Файл, хранящий индекс последнего сгенерированного списка отозванных сертификатов
crlnumber         = $dir/crlnumber
# Путь к актуальному списку отозванных сертификатов
crl               = $dir/crl/ca_crl.pem
# Список расширений для списка отозванных сертификатов
crl_extensions    = crl_ext
# Время жизни списка отозванных сертификатов по умолчанию, по истечению времени жизни список необходимо считать неактуальным
default_crl_days  = 30

# Алгоритм взятия контролькой суммы от данных в сертификатах по умолчанию
default_md        = sha256

name_opt          = ca_default
cert_opt          = ca_default
default_days      = 375
preserve          = no
policy            = policy_strict

copy_extensions = copy

# Политика обязательности различных полей при создании запроса на сертификат или сам сертификат
[ policy_strict ]
countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

# Блок настроек запроса на сертификацию
[ req ]
default_bits        = 2048
distinguished_name  = req_distinguished_name
string_mask         = utf8only

default_md          = sha256

x509_extensions     = v3_ca

# Описания для полей при создании запроса на сертификат или сам сертификат
[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
stateOrProvinceName             = State or Province Name
localityName                    = Locality Name
0.organizationName              = Organization Name
organizationalUnitName          = Organizational Unit Name
commonName                      = Common Name
emailAddress                    = Email Address

# Значения по умолчанию для полей при создании запроса на сертификат или сам сертификат
countryName_default             = RU
stateOrProvinceName_default     = Russia
localityName_default            = Novosibirsk
0.organizationName_default      = Eltex
organizationalUnitName_default  = Eltex
emailAddress_default            = user@eltex.loc

# Блок с расширениями X.509 для сертификата УЦ
[ v3_ca ]
basicConstraints = critical, CA:true
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always, issuer:always
keyUsage = critical, digitalSignature, cRLSign, keyCertSign  # Блок с расширениями X.509 для сертификата IPsec пира

# Блок с расширениями X.509 для сертификата IPsec пира
[ v3_ipsec_peer ]
basicConstraints        = critical, CA:FALSE
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid:always, issuer:always
keyUsage                = critical, digitalSignature, nonRepudiation
extendedKeyUsage	= serverAuth

# Блок с расширениями X.509 для списка отозванных сертификатов УЦ
[ crl_ext ]
authorityKeyIdentifier=keyid:always

Подготовительные работы завершены.

Создание приватного ключа и X.509 сертификата удостоверяющего центра

Создаем приватный RSA ключ УЦ в формате ключевого контейнера PKCS#8. В примере создается RSA ключ длиной 4096 бит. Алгоритм и опции для генерации можно менять в соответствии с поддержанными сочетаниями, которые можно посмотреть в "man openssl genpkey". Команда создания ключа выглядит следующим образом:

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out private/ca_key.pem

Просмотреть содержимое ключа можно командой:

openssl pkey -text -noout -in private/ca_key.pem
root:~/openssl-ca$ openssl pkey -text -noout -in private/ca_key.pem
Private-Key: (4096 bit, 2 primes)
modulus:
    00:bf:d9:e4:b9:63:f2:8a:8a:ef:30:7c:54:9a:78:
    cb:56:a6:7b:5e:39:7c:80:01:1f:db:cd:d6:08:69:
    7b:8e:ff:7d:6b:2f:53:23:a2:af:04:f5:51:6d:c5:
    86:a7:a7:88:ff:42:dd:e6:ed:84:56:6a:54:33:7c:
    b8:3e:cc:a4:98:50:60:f7:30:81:db:75:60:b3:ac:
    10:6f:c9:41:eb:cf:95:26:6b:9d:20:04:62:5b:a4:
    74:f0:5d:aa:5c:16:39:be:89:22:90:aa:b1:38:1b:
    ea:af:f4:f4:a0:51:30:ce:84:89:54:91:a5:fb:5d:
    4d:0f:38:be:af:69:2d:c0:81:ac:ce:a0:38:c2:f0:
    a0:33:79:71:ea:d8:b0:cf:85:1b:81:dd:c4:af:ec:
    ea:5d:49:9e:39:14:6d:44:3f:df:5b:11:44:9a:83:
    10:45:fa:3c:f2:8f:c0:53:32:cc:d9:d2:dc:0f:d7:
    d5:8b:eb:c4:73:e4:e1:92:51:61:c8:4d:3a:cc:22:
    34:62:00:c5:d7:53:e5:24:b1:95:a7:3a:81:27:1d:
    e8:7a:4a:1c:4a:8c:39:81:41:2f:12:f9:d3:fe:42:
    6f:f4:cd:3d:d7:23:54:32:61:10:47:82:d3:18:3d:
    f4:80:93:f6:b7:fa:d3:84:32:62:88:0d:81:7c:8a:
    ed:7a:56:6e:1f:9c:ee:ad:9e:e9:31:84:f7:fb:1f:
    9d:7e:03:e4:5a:4e:c7:16:83:b3:d0:b4:7c:db:fd:
    a7:38:aa:2e:f8:58:7c:d8:4b:4a:e3:0f:89:f8:01:
    25:2b:3f:69:ee:d3:15:64:7d:12:78:85:a4:e7:88:
    76:fc:b1:00:47:10:f1:3d:9c:53:55:49:72:80:c3:
    81:e6:f6:15:d3:04:af:32:c3:66:3b:ef:0a:2e:da:
    e3:19:3d:bc:b4:67:96:8e:10:e2:27:4f:a1:04:1b:
    18:ee:a7:4c:92:0a:54:d5:1b:f6:c8:e1:a8:31:89:
    a1:f2:25:c7:e7:20:0e:80:8a:b3:9c:d1:a4:2c:d5:
    b7:2c:c3:f7:cd:91:e1:0f:6a:29:18:ec:1d:ba:25:
    d1:78:98:84:f0:a4:2f:c7:75:4d:aa:a9:54:50:83:
    6b:9b:55:d1:c4:a8:06:d4:5b:a3:42:24:c2:af:19:
    89:66:a9:65:62:65:a8:17:c1:00:ee:4e:a4:92:15:
    61:0b:2e:5c:14:6f:fc:82:ef:81:88:1b:af:26:74:
    89:72:f5:5c:1b:bb:31:ac:30:fb:55:bf:3f:6d:80:
    2c:f6:dd:17:da:36:56:37:a6:67:68:4f:cd:f8:9d:
    34:cc:8d:32:82:cd:fe:86:9f:b0:a3:e1:01:7a:60:
    c6:81:83
publicExponent: 65537 (0x10001)
privateExponent:
    01:13:c8:25:02:5a:aa:4c:7d:6b:58:47:61:56:ac:
    4d:a0:41:b1:15:c1:8d:36:74:67:57:90:8c:1b:8b:
    86:12:09:32:40:e1:c6:a1:73:3a:23:e6:81:27:4a:
    ca:46:36:8e:b8:61:66:9a:8e:d3:ad:65:2b:a4:d7:
    a4:02:a2:29:f8:c9:92:99:c3:20:e8:57:d2:aa:74:
    ad:2c:04:22:be:d7:a7:8f:93:22:4a:e4:02:7f:b9:
    e8:5f:9e:45:46:1a:ac:e7:38:3a:77:ba:e7:05:c1:
    1b:9b:d4:83:d1:f0:e4:37:fa:4d:6f:43:ef:55:66:
    c9:5f:18:33:03:f4:2d:d0:8c:97:dc:6e:75:29:c4:
    bc:85:42:0e:7f:88:fe:a1:50:b6:39:f8:90:c4:53:
    cc:92:4d:41:24:cc:38:45:e3:8b:2f:5d:a3:40:79:
    26:eb:70:cc:2b:e2:78:95:20:71:58:ad:c3:a9:02:
    99:f6:88:f3:dd:a5:26:9d:2e:5f:61:8f:a2:f5:ce:
    35:7e:ab:9d:b9:ea:df:79:df:cd:40:96:d9:11:61:
    ec:cd:dd:ba:cd:6e:c5:3b:08:78:a2:ce:7d:ef:01:
    91:ee:55:1a:90:28:38:e0:32:a7:34:24:db:4d:fd:
    c1:7b:13:37:95:40:fa:cd:0d:a0:95:f2:d4:30:33:
    85:29:d9:3f:5d:c6:c4:56:ed:1a:5a:07:db:ab:8b:
    d0:28:e0:7b:6c:4a:db:bc:41:24:ce:98:2d:7e:9c:
    c7:d3:08:c4:80:70:ee:e3:0f:2c:ce:c5:ca:b4:78:
    c9:b2:8f:69:da:0f:92:65:ba:84:be:6c:3c:cc:10:
    0f:e6:5c:9b:2c:b0:61:6b:66:81:5b:9a:04:e4:50:
    90:bb:87:d3:19:bd:a6:71:b5:0a:80:c9:90:c5:8d:
    b5:42:ac:a4:5e:55:2a:a4:8b:95:36:39:7e:a0:e2:
    56:8a:88:94:fc:bb:5d:47:9b:3f:56:66:52:27:3d:
    41:4d:c2:bc:44:4b:b5:e5:bd:02:af:8b:85:76:cd:
    09:32:82:6c:bd:34:f9:02:6a:d4:e4:a2:a3:d6:f7:
    26:5a:e8:f8:c3:28:c6:d3:18:fd:5d:47:d9:88:87:
    cd:00:e1:cc:5a:d7:69:22:24:26:e9:b0:89:38:1b:
    16:56:6b:6f:d6:21:52:19:be:64:8b:ee:3e:82:0c:
    32:b0:ea:62:d6:41:aa:06:65:bf:e0:60:1a:f0:d3:
    da:61:d2:3a:0a:11:1e:df:35:ff:3a:8c:cb:33:db:
    a4:ea:e4:d2:70:4f:a0:5b:5b:01:ae:dc:a4:94:28:
    9b:7c:d0:2a:33:f2:bc:6b:16:68:4b:81:77:6e:84:
    5b:81
prime1:
    00:d3:93:b7:5e:5a:08:ea:2a:81:da:ad:be:e2:21:
    48:20:83:7a:2c:5d:7e:3b:66:ce:0b:7f:b8:96:33:
    d5:5d:32:c5:60:59:98:b5:ef:78:70:23:13:05:7d:
    85:c3:6e:8f:ac:ff:d4:7d:6e:81:4a:76:97:e2:3f:
    c0:4b:f9:e8:c2:87:6a:8b:b3:73:f7:6f:bf:7b:9a:
    70:1e:3c:17:05:ca:a6:ba:10:ac:5c:d2:ae:f5:ac:
    fc:c4:51:05:82:4a:88:b1:c9:97:06:91:d0:4b:e5:
    7a:a9:54:ee:14:55:79:59:4a:31:0e:7c:50:b2:a7:
    c8:e0:98:67:c6:94:9e:26:f7:8f:e9:c6:5b:49:ee:
    c3:20:8f:7a:ec:a2:c7:de:63:d3:d3:49:fb:eb:5f:
    85:0d:b5:db:d1:c1:05:41:9a:55:14:fc:79:85:13:
    69:33:1b:96:b0:9d:22:e2:b5:ce:18:9f:24:f0:e7:
    32:b0:4b:63:f5:2c:35:4b:38:84:d8:f7:1d:5d:1f:
    6c:23:ee:df:2d:94:1b:d7:50:44:81:b6:0b:22:7f:
    84:15:0d:8a:37:20:07:77:4c:15:62:37:2d:91:5e:
    6f:60:94:52:b5:6c:02:4f:af:83:0a:f5:f7:ff:bb:
    65:f5:44:4d:53:18:61:d0:55:7a:09:7d:93:fb:af:
    56:7d
prime2:
    00:e8:21:e8:ec:66:a6:4f:91:46:87:5c:87:c8:f9:
    a1:ee:0f:f8:a3:9b:a9:98:62:88:68:4d:c5:a3:15:
    dd:dd:44:de:a6:71:a0:fa:e1:13:01:c4:79:ab:4f:
    e0:5f:62:0a:a5:18:06:bf:00:da:c0:10:3e:be:a9:
    59:51:31:d2:46:60:02:85:8b:df:da:ca:c2:70:a1:
    2b:a5:60:40:78:ce:28:4f:41:ef:b0:c7:1c:55:92:
    c3:2a:2f:21:b2:24:62:ca:11:c6:ae:22:16:54:18:
    06:dd:2f:a0:43:aa:7b:15:c9:27:5f:ee:46:b5:ff:
    59:42:60:2c:8b:94:2f:4b:73:68:58:6b:07:95:2c:
    96:79:ee:69:29:9e:21:03:88:88:40:1b:c2:ad:3c:
    29:c2:ed:ea:fd:e2:3f:81:be:24:b2:1b:72:8e:1c:
    b1:a9:1c:46:90:9e:94:91:13:ad:33:7a:8f:47:07:
    75:b5:15:a4:4e:49:a3:1c:65:6d:68:9b:10:57:c3:
    e3:d4:ce:c5:82:0f:29:d5:91:12:d1:a3:52:52:e0:
    be:68:3b:2f:eb:9c:1e:ed:f3:1e:97:73:8d:64:7a:
    82:f0:2c:57:69:37:a8:22:4a:a6:c0:71:6f:5c:a6:
    2b:2b:a6:8b:a9:8c:d8:69:37:6b:4b:28:d0:25:3c:
    b7:ff
exponent1:
    77:1f:8d:37:97:53:bb:9c:31:3e:91:62:8e:e9:14:
    36:12:30:a0:78:07:51:a4:a1:50:02:1a:48:9f:68:
    7b:2f:d1:c7:5c:ca:c9:6c:ca:0f:c0:ff:bd:b0:9d:
    b6:9a:32:54:c2:39:be:61:90:73:ff:6f:a6:98:24:
    49:e2:ac:35:92:8e:df:97:2b:2c:de:83:1e:31:a6:
    fc:ae:f2:7b:75:4d:08:27:c9:13:fe:1f:39:fd:aa:
    d7:51:92:db:77:e1:9c:d0:16:b3:41:37:d8:f3:9c:
    6b:68:81:1f:7b:bc:76:14:7a:a8:60:40:03:46:ca:
    a8:01:c7:34:1c:8b:2a:ff:69:cc:c2:bc:b5:54:b4:
    12:4a:16:78:d3:71:da:f9:b3:d3:1b:ad:b6:29:32:
    bd:b4:6d:ce:9c:71:bc:2d:0b:c8:64:1a:7b:5d:a1:
    76:80:0b:08:e7:80:33:cb:0e:fd:f7:e4:91:aa:6a:
    74:ae:0d:da:85:88:80:10:93:63:a1:46:ac:1e:bc:
    01:43:45:ee:e0:9c:08:4f:8e:32:c5:ef:60:fe:10:
    bc:d5:c1:c3:25:ca:6e:55:ad:18:7e:5e:ae:a1:4f:
    ee:3d:b4:8f:a6:ff:6a:24:34:90:e0:4a:40:77:1f:
    81:c7:72:0d:de:05:7c:8a:13:ca:f2:24:76:a9:92:
    f5
exponent2:
    00:9a:93:a2:20:71:c6:83:ab:90:d4:a8:98:3f:0b:
    84:7a:1b:a6:8d:84:25:ae:34:c6:f2:f5:ff:0a:b7:
    8f:f3:3d:5e:2a:65:f6:35:b9:d5:47:53:07:56:3d:
    ad:82:b6:ad:b1:fc:4a:d9:bb:fe:ee:f0:a2:67:a2:
    2b:b8:f6:bd:38:61:cc:ac:13:55:b0:c3:5e:31:54:
    11:d5:61:3f:ed:72:12:c3:9c:7b:b9:33:0d:ba:2a:
    2d:ce:14:6e:92:ca:ca:02:17:4e:3f:3c:b1:b3:b4:
    00:36:1f:f5:cf:b9:61:97:43:48:f6:07:9c:8c:ab:
    0a:4c:39:f0:cf:cd:90:a4:e4:a7:f2:60:eb:3e:b9:
    df:46:38:ad:4c:aa:60:ff:92:56:70:a2:4b:c3:c2:
    11:69:1d:b7:62:f2:db:29:51:6d:ec:30:7c:db:07:
    5e:82:e7:32:52:31:57:6b:38:38:18:d4:9f:3e:44:
    48:6c:9a:89:bc:1c:2b:02:c8:c3:cf:69:9a:bb:66:
    d5:7b:2b:69:b8:4e:d2:a3:c5:a4:4b:77:3f:65:b3:
    04:f8:31:99:9a:82:6e:d2:33:18:06:f0:4a:92:43:
    46:98:1a:5e:e6:d0:ca:24:73:a3:90:f8:b8:98:70:
    8a:c4:d9:75:9d:25:0e:23:1a:65:57:3a:49:48:d2:
    a3:0f
coefficient:
    00:b7:a3:41:e7:4e:55:64:f1:b7:e5:38:dd:5a:87:
    63:48:37:dd:19:8a:ed:ab:3c:48:5b:76:50:e0:0f:
    8a:94:62:f6:45:35:89:b8:9a:f0:2e:89:f5:d4:69:
    e1:d0:76:66:91:0a:d6:bd:6a:7f:46:b0:9c:eb:94:
    67:26:db:2a:78:4c:77:9e:f2:9d:5f:36:11:0e:ed:
    e4:f6:8c:df:a4:b9:9f:22:d7:dd:79:f9:59:5e:5d:
    de:f8:ef:5d:ba:d4:90:3b:a7:89:99:da:19:58:d3:
    6e:bd:2d:e2:91:e0:ef:bb:b7:80:1b:71:63:01:f0:
    96:6b:4b:0c:7e:94:cc:76:a9:45:e9:75:5a:5f:d6:
    fd:b5:fd:a9:1f:25:7d:26:01:33:42:ce:5d:d2:5c:
    14:9f:56:77:1e:c8:bc:83:a2:16:8c:fe:b6:e1:52:
    e2:b6:03:25:81:a5:ac:d6:5e:f1:76:4b:71:90:eb:
    e2:32:31:40:9c:3e:0f:3e:7b:82:ed:04:9f:fb:fa:
    26:71:06:69:f0:da:c5:a2:c1:1f:72:2a:f7:e7:b5:
    3e:c7:67:3c:cb:a4:86:9a:97:3a:84:6c:bb:b4:62:
    2f:fd:47:55:51:3b:91:bf:df:a5:81:c8:a5:ff:a0:
    c9:5e:ab:6f:40:7b:d0:f0:6d:41:3e:ca:f7:a8:cf:
    0a:82
root:~/openssl-ca$

После чего создадим из данного приватного ключа создадим запрос на сертификацию и подпишем его этим же ключом, тем самым создав самоподписанный сертификат УЦ. Пояснения по аргументам:

  • ключ -days задает время жизни сертификата в днях;
  • ключ -nodes отключает шифрование итогового файла сертификата и защиты его при помощи пароля;
  • ключ -config ссылается на используемый файл конфигурации openssl, в нашем случае на тот, что расположен в текущей директории;
  • ключ -extensions указывает на секцию v3_ca в файле конфигурации openssl.cnf. В используемом нами openssl.cnf в этой секции описан набор расширений X.509, характерных для сертификатов УЦ;
  • ключ -subj содержит метаинформацию о владельце сертификата. При остуствии данного ключа ввод данных полей будет осуществляться в интерактивном режиме.


openssl req -config openssl.cnf -key private/ca_key.pem -new -x509 -days 3650 -sha256 -nodes -extensions v3_ca -subj "/C=RU/ST=Siberia/L=Novosibirsk/O=Eltex/OU=Eltex SC/CN=ca.test.loc/emailAddress=ca@test.loc" -out certs/ca_crt.pem

Просмотреть содержимое сертификата можно командой:

openssl x509 -text -noout -in certs/ca_crt.pem
root:~/openssl-ca$ openssl x509 -text -noout -in certs/ca_crt.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            18:cb:d7:1d:4f:af:1f:10:cf:19:51:4b:71:5a:91:b7:b3:d4:6b:35
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = RU, ST = Siberia, L = Novosibirsk, O = Eltex, OU = Eltex SC, CN = ca.test.loc, emailAddress = ca@test.loc
        Validity
            Not Before: Oct  4 03:36:06 2022 GMT
            Not After : Oct  1 03:36:06 2032 GMT
        Subject: C = RU, ST = Siberia, L = Novosibirsk, O = Eltex, OU = Eltex SC, CN = ca.test.loc, emailAddress = ca@test.loc
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (4096 bit)
                Modulus:
                    00:bf:d9:e4:b9:63:f2:8a:8a:ef:30:7c:54:9a:78:
                    cb:56:a6:7b:5e:39:7c:80:01:1f:db:cd:d6:08:69:
                    7b:8e:ff:7d:6b:2f:53:23:a2:af:04:f5:51:6d:c5:
                    86:a7:a7:88:ff:42:dd:e6:ed:84:56:6a:54:33:7c:
                    b8:3e:cc:a4:98:50:60:f7:30:81:db:75:60:b3:ac:
                    10:6f:c9:41:eb:cf:95:26:6b:9d:20:04:62:5b:a4:
                    74:f0:5d:aa:5c:16:39:be:89:22:90:aa:b1:38:1b:
                    ea:af:f4:f4:a0:51:30:ce:84:89:54:91:a5:fb:5d:
                    4d:0f:38:be:af:69:2d:c0:81:ac:ce:a0:38:c2:f0:
                    a0:33:79:71:ea:d8:b0:cf:85:1b:81:dd:c4:af:ec:
                    ea:5d:49:9e:39:14:6d:44:3f:df:5b:11:44:9a:83:
                    10:45:fa:3c:f2:8f:c0:53:32:cc:d9:d2:dc:0f:d7:
                    d5:8b:eb:c4:73:e4:e1:92:51:61:c8:4d:3a:cc:22:
                    34:62:00:c5:d7:53:e5:24:b1:95:a7:3a:81:27:1d:
                    e8:7a:4a:1c:4a:8c:39:81:41:2f:12:f9:d3:fe:42:
                    6f:f4:cd:3d:d7:23:54:32:61:10:47:82:d3:18:3d:
                    f4:80:93:f6:b7:fa:d3:84:32:62:88:0d:81:7c:8a:
                    ed:7a:56:6e:1f:9c:ee:ad:9e:e9:31:84:f7:fb:1f:
                    9d:7e:03:e4:5a:4e:c7:16:83:b3:d0:b4:7c:db:fd:
                    a7:38:aa:2e:f8:58:7c:d8:4b:4a:e3:0f:89:f8:01:
                    25:2b:3f:69:ee:d3:15:64:7d:12:78:85:a4:e7:88:
                    76:fc:b1:00:47:10:f1:3d:9c:53:55:49:72:80:c3:
                    81:e6:f6:15:d3:04:af:32:c3:66:3b:ef:0a:2e:da:
                    e3:19:3d:bc:b4:67:96:8e:10:e2:27:4f:a1:04:1b:
                    18:ee:a7:4c:92:0a:54:d5:1b:f6:c8:e1:a8:31:89:
                    a1:f2:25:c7:e7:20:0e:80:8a:b3:9c:d1:a4:2c:d5:
                    b7:2c:c3:f7:cd:91:e1:0f:6a:29:18:ec:1d:ba:25:
                    d1:78:98:84:f0:a4:2f:c7:75:4d:aa:a9:54:50:83:
                    6b:9b:55:d1:c4:a8:06:d4:5b:a3:42:24:c2:af:19:
                    89:66:a9:65:62:65:a8:17:c1:00:ee:4e:a4:92:15:
                    61:0b:2e:5c:14:6f:fc:82:ef:81:88:1b:af:26:74:
                    89:72:f5:5c:1b:bb:31:ac:30:fb:55:bf:3f:6d:80:
                    2c:f6:dd:17:da:36:56:37:a6:67:68:4f:cd:f8:9d:
                    34:cc:8d:32:82:cd:fe:86:9f:b0:a3:e1:01:7a:60:
                    c6:81:83
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                4E:98:32:4C:18:FE:FB:B9:D3:8E:7B:68:E0:9E:E6:6F:FA:C7:C7:2F
            X509v3 Authority Key Identifier: 
                keyid:4E:98:32:4C:18:FE:FB:B9:D3:8E:7B:68:E0:9E:E6:6F:FA:C7:C7:2F
                DirName:/C=RU/ST=Siberia/L=Novosibirsk/O=Eltex/OU=Eltex SC/CN=ca.test.loc/emailAddress=ca@test.loc
                serial:18:CB:D7:1D:4F:AF:1F:10:CF:19:51:4B:71:5A:91:B7:B3:D4:6B:35
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        b9:2c:4b:bc:e3:44:b6:49:d8:47:e4:6f:cc:36:31:a5:ab:57:
        cf:1d:9c:65:76:94:ec:f0:3e:c8:de:2a:3c:af:be:b2:5b:b6:
        76:fd:84:2f:64:31:32:b1:cb:12:6b:58:48:75:59:b6:ad:66:
        1d:39:a2:a9:8e:7a:26:b5:94:71:e5:f4:f0:6a:7f:8d:57:4b:
        41:da:3e:2e:2a:e0:6e:d1:d7:d7:0b:6b:7b:55:15:47:20:cd:
        f4:b9:8c:bd:06:41:7b:e4:85:8c:f1:df:52:48:c5:ea:ba:0f:
        31:1a:0d:ba:de:6a:87:d2:9c:a1:cf:60:d1:43:e0:78:a4:69:
        1c:e0:34:3a:06:ac:0b:23:ea:e0:44:c5:3a:7a:8f:e6:eb:ef:
        c8:16:08:89:95:b8:fe:04:f4:db:8b:bd:53:e4:a5:1a:0b:68:
        7f:0d:de:6d:c2:54:39:f6:13:d5:46:08:b5:30:43:8e:00:f0:
        5b:21:9e:45:30:df:24:48:15:46:00:50:63:f8:f8:ef:bf:ce:
        3c:61:db:c4:78:c4:d4:5c:83:d6:a5:82:88:5d:2c:49:4b:1e:
        8f:7d:5a:28:50:37:fa:17:42:f2:6e:f6:17:23:a1:a6:c6:83:
        d1:99:98:fa:82:66:2d:c6:dd:b6:66:07:25:f9:9b:ae:22:f8:
        45:91:9f:e7:9d:2a:70:ca:69:f8:4b:04:07:08:3b:cc:19:6e:
        35:1b:43:74:d2:27:a8:72:6f:a7:6a:1e:79:68:b0:34:9d:1e:
        7a:2f:03:ff:38:02:9c:26:bb:49:5f:b4:44:3c:72:50:09:72:
        0e:01:50:4b:a6:46:1e:63:99:5d:d9:79:8a:42:c6:35:19:94:
        73:19:8d:53:15:72:93:1f:a2:4f:45:84:6b:5c:13:b7:dc:79:
        af:4e:b4:69:65:d9:25:77:41:4d:94:41:2f:64:3f:47:df:80:
        6e:49:2e:ce:2d:37:c8:10:e4:96:21:d8:b8:53:50:27:b0:f8:
        9f:c1:3d:dc:71:f9:12:d8:fb:a0:d0:39:79:cb:1c:27:a2:b8:
        61:d1:2c:cd:ff:70:d7:91:37:7c:8b:68:0b:4c:af:4d:a2:2e:
        ec:94:55:74:0b:f5:e8:2e:a9:83:11:4d:a7:9b:8e:03:dd:ac:
        72:da:ff:bc:6a:bc:3a:af:72:3a:23:f2:28:0e:a1:af:fb:49:
        04:72:e8:f6:94:18:dd:24:12:d1:78:bf:18:78:b4:14:8d:b7:
        d0:2a:80:ec:fd:6b:5e:07:a4:12:c5:c6:1f:6a:2b:18:0c:a0:
        6c:a8:4c:d0:f8:f0:1e:f5:96:7e:8e:b6:94:39:89:b1:4d:1b:
        47:4a:21:c5:4f:a5:b7:3f
root:~/openssl-ca$

Создание приватного ключа и сертификата X.509 УЦ завершено.

Создание списка отозванных сертификатов удостоверяющего центра

Список отозванных сертификатов УЦ создается после генерации приватного ключа и X.509 сертификата УЦ. Команда генерации списка выглядит следующим образом:

openssl ca -config openssl.cnf -gencrl -out crl/ca_crl.pem

Просмотреть содержимое списка отозванных сертификатов можно командой:

openssl crl -text -noout -in crl/ca_crl.pem
root:~/openssl-ca$ openssl crl -text -noout -in crl/ca_crl.pem
Certificate Revocation List (CRL):
        Version 2 (0x1)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = RU, ST = Siberia, L = Novosibirsk, O = Eltex, OU = Eltex SC, CN = ca.test.loc, emailAddress = ca@test.loc
        Last Update: Oct  4 03:43:16 2022 GMT
        Next Update: Nov  3 03:43:16 2022 GMT
        CRL extensions:
            X509v3 Authority Key Identifier: 
                4E:98:32:4C:18:FE:FB:B9:D3:8E:7B:68:E0:9E:E6:6F:FA:C7:C7:2F
            X509v3 CRL Number: 
                4096
No Revoked Certificates.
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        82:cb:fa:d8:88:53:99:15:34:7b:9d:f2:3f:07:0f:92:2f:35:
        cd:24:0c:c2:ef:44:f4:ba:1c:14:ce:6e:50:69:b2:54:5e:8c:
        44:63:bd:df:ef:5f:1e:ba:bf:5e:86:39:9a:a7:2b:ce:ae:52:
        fc:60:74:43:5c:98:7b:37:01:92:3b:4b:e8:78:f6:43:19:82:
        c1:16:c7:eb:c9:10:62:b6:82:a4:f9:f7:3d:dd:b8:a4:0f:b1:
        b3:50:eb:b5:35:bc:66:66:87:b3:bf:35:9d:f9:63:e4:ef:de:
        de:c1:48:54:a7:55:32:65:dd:c1:67:29:de:fa:6f:e1:11:69:
        0d:e2:1d:63:5d:f0:f9:5c:08:24:37:f0:3f:3a:be:b6:70:13:
        f6:eb:d6:ba:0e:e2:ce:a5:7f:4f:58:6d:4f:48:e1:9a:19:31:
        4c:51:94:54:8f:5a:46:01:91:86:c7:ee:75:fd:a7:2d:a5:5f:
        99:e0:7a:a2:f4:82:97:db:89:7f:cd:d3:4b:27:7d:6d:cd:e8:
        3d:87:a3:9b:c7:b4:14:36:cc:34:9c:0f:ad:30:f0:88:1d:08:
        df:02:6d:35:71:17:e2:4c:b1:b7:6a:bf:63:6a:b2:39:fc:21:
        0e:47:19:70:f9:04:f8:cf:d3:eb:f7:0a:63:67:6a:14:69:3b:
        44:c2:7b:18:0a:87:0d:90:c6:da:81:b0:03:3a:8d:69:b3:f5:
        8f:6c:89:29:b5:a8:9b:70:85:03:00:f5:c2:6f:d9:18:18:f6:
        ab:6a:33:63:98:9d:0e:de:6d:e3:58:2b:9a:01:a7:76:c4:e6:
        63:b1:5f:72:f8:ff:9d:01:5e:1a:85:63:79:46:ee:01:98:5a:
        99:7e:65:62:0a:48:0d:e1:0a:36:d4:c1:fe:e0:61:b4:b0:70:
        2f:a6:f7:7a:38:29:73:bd:84:00:ae:94:60:94:97:60:6c:56:
        ee:77:fa:8f:a4:d4:b7:fd:1d:4f:4c:41:8f:01:68:ef:8d:2c:
        e3:66:46:66:17:a9:72:e9:7f:47:c4:64:22:8b:b1:ee:66:24:
        a0:8b:ee:e1:25:5e:0e:7a:0e:fe:09:19:c1:c2:f9:2a:72:35:
        4b:62:20:dd:3b:46:89:10:ce:60:24:9f:af:81:68:38:f0:9c:
        3b:d5:cc:95:da:34:9b:0c:19:f0:b0:3a:93:f7:20:b8:c7:dc:
        df:ce:15:c8:9a:ce:9b:e9:81:61:df:3b:7d:c7:43:25:82:b0:
        78:a6:42:63:14:3e:03:a7:e0:59:16:99:20:75:82:8e:2b:10:
        ae:fc:43:19:ab:67:80:18:c4:27:e9:08:74:b1:d7:1c:13:49:
        31:97:49:f9:1b:45:71:0e
root:~/openssl-ca$

Поскольку отзывов сертификатов еще не проводилось - список отозванных сертификатов будет пуст, на что в явном виде намекает надпись "No Revoked Certificates".

Создание списка отозванных сертификатов успешно завершено. Процедура отзыва сертификата описана в одном из следующих пунктов.

Создание приватного ключа и X.509 сертификата для IPsec пира

Создаем приватный RSA ключ для IPsec пира в формате ключевого контейнера PKCS#8. В примере создается RSA ключ длиной 2048 бит. Алгоритм и опции для генерации можно менять в соответствии с поддержанными сочетаниями, которые можно посмотреть в "man openssl genpkey". Команда создания ключа выглядит следующим образом:

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private/server1_key.pem

Просмотреть содержимое ключа можно командой:

openssl pkey -text -noout -in private/server1_key.pem
root:~/openssl-ca$ openssl pkey -text -noout -in private/server1_key.pem
Private-Key: (2048 bit, 2 primes)
modulus:
    00:a3:62:d2:87:dc:13:3c:53:df:70:ed:c4:38:a8:
    ce:c8:f6:c2:20:49:cd:68:6f:cf:3c:a8:20:cf:73:
    47:03:86:f9:48:46:f6:a2:c8:8e:11:f7:ed:5a:83:
    d7:17:b9:38:e0:3b:e4:47:cc:d6:81:b1:d0:4c:1e:
    70:e1:f0:aa:a8:03:52:82:3d:20:d5:39:ee:75:24:
    49:f3:be:41:9a:41:2f:41:80:c7:aa:66:db:40:c4:
    77:63:c0:23:e2:4f:d9:7d:37:ce:77:fd:38:15:1f:
    55:49:67:b3:01:b6:2d:01:dd:c3:e3:a6:40:fe:f4:
    fb:4a:da:4e:a2:7c:08:37:d0:12:60:d4:24:59:48:
    d7:8f:8d:e9:f6:c8:88:bd:54:51:bc:be:96:4f:be:
    38:84:d2:02:4e:aa:ab:52:3c:f4:f7:67:83:2a:af:
    07:0b:19:13:a7:7d:52:bf:df:47:db:b3:07:72:71:
    ff:ef:8d:c1:21:61:32:c2:5c:fc:d9:6b:87:db:97:
    a1:fb:e6:9c:40:36:8f:2d:6a:b0:9c:88:77:ff:b0:
    2b:1b:5d:21:e4:c8:e2:99:be:61:08:b9:b7:12:22:
    bf:4a:4a:7b:2e:0a:8f:5d:a1:1e:13:05:e9:4e:be:
    ed:4d:ed:b1:3a:d2:5c:2b:57:2c:8e:dd:1a:35:f5:
    54:79
publicExponent: 65537 (0x10001)
privateExponent:
    33:e0:56:39:45:e2:a3:a6:7b:cd:06:e9:65:16:10:
    26:15:d7:38:5a:46:8a:70:e9:cb:78:14:86:d9:b2:
    c4:07:70:92:06:da:1b:80:73:3f:78:49:58:12:81:
    52:6a:80:89:0d:eb:22:f3:02:6e:c6:8e:fd:04:33:
    52:41:d0:65:ad:3c:5e:d6:da:dc:68:da:f2:3d:b5:
    ef:5a:ca:c8:98:06:d1:94:fa:90:7b:bd:04:d8:fc:
    91:62:f9:e1:ca:f9:a2:bc:fb:e4:f4:35:00:db:e4:
    7f:fc:99:85:23:1b:32:3b:00:0e:01:85:24:8e:93:
    55:46:70:6e:3d:d4:7c:27:a6:32:e4:3f:de:60:44:
    63:19:a8:2f:4c:e7:7e:7c:dd:c2:b5:06:ff:e2:67:
    17:3d:0d:20:06:3d:39:79:c9:1e:02:08:14:02:f9:
    02:ec:7c:62:05:1e:90:c7:d9:fc:5e:3b:49:50:63:
    bf:84:58:bb:8c:66:6c:6b:92:23:e3:13:fa:33:63:
    15:ad:0e:78:56:b4:9d:21:fe:b8:02:30:12:3b:79:
    81:07:6a:b8:f8:b9:e2:36:ff:c7:cc:b6:46:86:d4:
    13:cc:1e:0f:5e:a6:20:70:26:b2:3a:5e:20:1d:20:
    2a:e6:eb:5f:06:29:ac:af:39:65:9f:0b:7c:43:54:
    53
prime1:
    00:cf:a7:e6:18:6a:50:f2:fe:dc:25:97:49:03:30:
    f4:16:18:13:49:4c:12:c0:eb:70:df:9c:35:5b:bf:
    61:6d:37:7c:dc:de:29:3c:22:4c:44:65:0e:5a:e1:
    5d:32:d0:b1:12:74:7b:4b:b8:ac:f6:ed:a0:7f:67:
    f4:03:d8:07:7d:33:d1:e2:21:d1:6b:e9:8e:d8:b4:
    e3:07:18:35:28:8b:aa:4a:5f:79:3f:e3:38:29:d0:
    24:25:8c:ce:32:8e:4f:cf:1d:df:fc:94:b1:41:10:
    5c:fb:4c:8c:95:2b:be:43:7f:02:6e:53:ee:70:cc:
    0c:47:24:5e:ac:38:9c:26:4b
prime2:
    00:c9:6c:7b:53:c4:66:41:bd:b7:28:85:fd:f8:92:
    cc:b3:d8:74:23:a8:f6:a4:96:97:54:98:85:0e:20:
    82:a2:df:99:ac:22:d0:e3:46:ac:f1:22:83:a1:27:
    b2:9c:e9:32:7e:c9:98:60:f0:53:c9:33:66:85:bc:
    b2:34:1b:a2:c6:4a:cb:f7:04:29:8c:45:7d:a1:d1:
    0e:fe:49:d2:3d:fc:02:88:e7:b9:bc:a9:a9:d5:56:
    29:6f:78:b0:cd:5f:e1:66:0f:ee:d4:74:0c:fe:13:
    38:00:f6:80:b4:b6:7f:03:ad:cc:94:ce:be:f4:20:
    a1:53:d8:bb:8c:47:fa:85:cb
exponent1:
    7c:e6:75:3c:bc:3d:e2:5a:af:19:a1:2c:56:52:0c:
    8e:79:7e:a8:38:ac:93:03:4a:4a:05:50:06:d6:4f:
    08:7d:36:8a:36:ca:40:94:34:a1:72:d3:36:90:95:
    19:2a:73:47:31:6e:b3:b5:e9:bb:40:64:a8:1d:63:
    a5:28:3c:20:ef:99:4f:55:9d:fc:35:68:29:2a:6b:
    df:69:8d:17:cd:21:e9:48:11:ca:fe:a5:5a:69:0a:
    44:d7:b3:72:af:2c:8b:dc:61:4c:30:37:89:76:09:
    27:51:fc:c1:00:a5:99:3d:7c:bd:d5:97:f6:9a:94:
    cb:f9:b1:44:0f:6c:c4:8f
exponent2:
    26:aa:b9:9e:22:14:d3:47:fd:32:3d:4e:bc:fa:49:
    6b:b9:00:ca:9b:b4:05:72:97:48:79:23:09:cc:39:
    e7:d4:6e:e6:b9:a4:4a:0d:16:44:10:31:1e:ad:c5:
    3f:14:11:4a:7f:9e:cd:f5:34:d0:6a:1a:a3:4f:cf:
    11:eb:c0:3a:ba:bf:1f:03:60:8a:7a:08:9d:18:c9:
    fd:0c:e4:dc:5b:55:8d:3c:96:ce:5d:ef:a9:71:a9:
    f0:a9:45:9f:97:69:68:b3:64:50:ca:9a:77:e7:ee:
    97:58:ba:ea:76:22:39:ed:92:59:7a:ba:f3:98:93:
    ff:c9:9a:6f:5a:9e:00:33
coefficient:
    7c:45:77:ff:7f:d3:a2:34:99:fa:d7:48:f9:c5:5c:
    ba:52:11:3b:28:63:ac:05:5a:78:4f:db:65:fb:d6:
    12:f0:78:d4:19:b5:2d:ed:c5:6f:6b:f4:da:8d:63:
    2b:16:a4:02:0a:cd:c5:e8:22:66:2d:58:c0:fd:9b:
    ae:5f:08:c0:e4:80:2f:ae:26:e4:36:24:ce:4a:d4:
    94:9b:53:c3:f8:2a:8d:76:bf:54:a7:af:f0:74:3f:
    30:5a:d0:ea:54:7c:fa:8b:f1:a8:6d:49:de:31:5f:
    2f:39:f1:ac:aa:84:82:f6:38:42:41:37:9e:40:f6:
    68:ef:4e:a3:03:57:7e:8b
root:~/openssl-ca$

После чего  из данного приватного ключа создадим запрос на сертификацию. Пояснения по аргументам:

  • ключ -config ссылается на используемый файл конфигурации openssl, в нашем случае на тот, что расположен в текущей директории;
  • ключ -subj содержит метаинформацию о владельце запроса на сертификацию. При отсутствии данного ключа ввод данных полей будет осуществляться в интерактивном режиме;
  • ключ -addext позволяет добавить в запрос на сертификацию желаемые расширения X.509. В нашем случае мы добавим расширение "Subject Alternative Name" (SAN), в кором можно задать альтернативные идентификаторы владельца сертификата. В нашем случае мы заполним его IP адресом, с которого будет строиться IPsec VPN туннель, использующий данный сертификат. 


openssl req -config openssl.cnf -key private/server1_key.pem -new -sha256 -subj "/C=RU/ST=Siberia/L=Novosibirsk/O=Eltex/OU=Eltex SC/CN=server1.esr-test.loc/emailAddress=server1@esr-test.loc" -addext "subjectAltName = IP:192.168.1.1" -out csr/server1_req.pem

Просмотреть содержимое запроса на сертификацию можно командой:

openssl req -text -noout -in csr/server1_req.pem
root:~/openssl-ca$ openssl req -text -noout -in csr/server1_req.pem
Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: C = RU, ST = Siberia, L = Novosibirsk, O = Eltex, OU = Eltex SC, CN = server1.esr-test.loc, emailAddress = server1@esr-test.loc
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a6:a2:a0:d5:50:76:61:23:72:78:00:b2:3a:4b:
                    64:47:e3:16:38:57:df:75:49:4b:9e:44:4f:31:df:
                    54:11:78:d5:58:f6:b5:7b:32:0d:7a:12:fb:07:e7:
                    89:6b:05:6d:64:8d:51:37:d7:c4:c7:b3:c9:e8:c6:
                    90:4f:54:3a:c0:cb:39:3b:0c:47:45:b1:bf:18:4f:
                    16:ff:fa:c0:29:31:1d:15:09:cd:98:bd:31:a6:36:
                    ad:44:cd:31:a7:09:76:0a:53:d3:4b:d6:b7:01:d3:
                    07:21:18:88:49:34:bd:38:37:be:41:96:33:db:7b:
                    9e:9b:a8:02:4c:67:c7:41:57:69:a1:05:ec:75:7a:
                    d2:a7:3e:6d:70:43:85:c8:2f:82:2a:c6:e1:2e:d0:
                    aa:d9:49:0f:03:2a:d8:b1:f9:7b:9a:96:89:a8:03:
                    d0:4d:20:fd:12:74:e3:9f:ed:9e:0e:d4:53:06:f4:
                    c6:f1:7b:d5:4f:76:4d:67:d4:d1:fc:78:92:b5:33:
                    cf:8b:1d:65:d2:c2:bf:0a:2e:31:7d:c9:8c:92:f6:
                    16:64:17:3f:35:b2:ba:26:f7:aa:e3:d6:65:f4:aa:
                    9b:5b:8e:64:b7:7d:42:f9:d2:cf:60:8f:05:d0:98:
                    76:9e:c5:24:bf:b6:12:63:f6:14:93:8a:b7:64:20:
                    41:03
                Exponent: 65537 (0x10001)
        Attributes:
            Requested Extensions:
                X509v3 Subject Alternative Name: 
                    IP Address:192.168.1.1
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        8b:ad:94:bd:18:ca:32:37:2a:24:d9:85:98:52:f6:0a:7a:f6:
        11:a6:d1:62:cb:84:ed:d5:ad:02:7d:50:c4:e9:73:01:40:82:
        cd:da:d3:45:37:08:1e:15:7d:49:c8:94:4d:03:6b:ce:27:eb:
        76:4e:a1:4d:e6:41:46:6d:a5:35:a2:97:65:0b:35:a8:1a:e4:
        81:b8:e0:00:e5:21:59:b8:70:cd:e5:af:d3:38:43:5a:70:26:
        c2:07:ba:65:42:8f:90:6c:d8:eb:88:ce:f4:fe:03:85:91:7e:
        41:e4:69:f6:8d:ce:f1:61:1e:38:af:77:57:54:5a:86:da:cf:
        31:fe:86:a1:b2:92:33:27:36:ff:bf:78:bd:ca:99:62:e7:e2:
        fa:1f:9b:e2:59:30:e5:61:6a:bc:7c:8e:34:df:5c:c1:34:dd:
        ba:16:06:ce:e0:2a:5b:ea:7b:a5:5d:48:20:33:db:07:e7:ab:
        92:d6:da:af:5a:a1:43:da:b0:5d:19:b5:c6:8b:44:0e:9c:c9:
        cf:c4:f8:e1:82:81:bc:e9:39:9b:29:de:d7:46:96:22:e8:ec:
        6f:89:08:af:80:e4:11:b2:84:12:6b:39:ed:78:04:a3:5d:90:
        a0:ed:83:f2:f3:da:fa:3a:39:be:d1:cf:3e:b4:13:26:a1:af:
        94:c5:24:49
root:~/openssl-ca$

Теперь запрос на сертификацию необходимо подписать приватным ключом УЦ, сформировав сертификат X.509 для IPsec пира.  Пояснения по аргументам:

  • ключ -days задает время жизни сертификата в днях;
  • ключ -nodes отключает шифрование итогового файла сертификата и защиты его при помощи пароля;
  • ключ -config ссылается на используемый файл конфигурации openssl, в нашем случае на тот, что расположен в текущей директории;
  • ключ -extensions указывает на секцию v3_ipsec_peer в файле конфигурации openssl.cnf. В используемом нами openssl.cnf в этой секции описан набор расширений X.509, характерных для IPsec пира, производящего аутентификацию подключащихся к нему других пиров;
  • ключ -batch переводит процесс подписывания сертификата в неинтерактивный режим.


openssl ca -config openssl.cnf -extensions v3_ipsec_peer -days 365 -notext -md sha256 -batch -in csr/server1_req.pem -out certs/server1_crt.pem
root:~/openssl-ca$ openssl ca -config openssl.cnf -extensions v3_ipsec_peer -days 365 -notext -md sha256 -batch -in csr/server1_req.pem -out certs/server1_crt.pem
Using configuration from openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 4096 (0x1000)
        Validity
            Not Before: Aug 17 05:01:36 2023 GMT
            Not After : Aug 16 05:01:36 2024 GMT
        Subject:
            countryName               = RU
            stateOrProvinceName       = Siberia
            organizationName          = Eltex
            organizationalUnitName    = Eltex SC
            commonName                = server1.esr-test.loc
            emailAddress              = server1@esr-test.loc
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier: 
                52:50:45:FF:18:BB:7D:0F:FC:F5:AC:81:C2:72:19:D0:91:B2:78:15
            X509v3 Authority Key Identifier: 
                keyid:A7:BD:BC:36:54:06:75:37:78:34:64:AD:43:55:37:16:E0:5E:3A:4A
                DirName:/C=RU/ST=Siberia/L=Novosibirsk/O=Eltex/OU=Eltex SC/CN=ca.test.loc/emailAddress=ca@test.loc
                serial:15:89:34:29:DC:66:70:36:EF:DA:4E:AE:E6:3A:37:08:2F:21:B1:FA
            X509v3 Key Usage: critical
                Digital Signature, Non Repudiation
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication
            X509v3 Subject Alternative Name: 
                IP Address:192.168.1.1
Certificate is to be certified until Aug 16 05:01:36 2024 GMT (365 days)

Write out database with 1 new entries
Data Base Updated

root:~/openssl-ca$

Просмотреть содержимое полученного сертификата можно командой:

openssl x509 -text -noout -in certs/server1_crt.pem
root:~/openssl-ca$ openssl x509 -text -noout -in certs/server1_crt.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 4096 (0x1000)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = RU, ST = Siberia, L = Novosibirsk, O = Eltex, OU = Eltex SC, CN = ca.test.loc, emailAddress = ca@test.loc
        Validity
            Not Before: Aug 17 05:01:36 2023 GMT
            Not After : Aug 16 05:01:36 2024 GMT
        Subject: C = RU, ST = Siberia, O = Eltex, OU = Eltex SC, CN = server1.esr-test.loc, emailAddress = server1@esr-test.loc
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a6:a2:a0:d5:50:76:61:23:72:78:00:b2:3a:4b:
                    64:47:e3:16:38:57:df:75:49:4b:9e:44:4f:31:df:
                    54:11:78:d5:58:f6:b5:7b:32:0d:7a:12:fb:07:e7:
                    89:6b:05:6d:64:8d:51:37:d7:c4:c7:b3:c9:e8:c6:
                    90:4f:54:3a:c0:cb:39:3b:0c:47:45:b1:bf:18:4f:
                    16:ff:fa:c0:29:31:1d:15:09:cd:98:bd:31:a6:36:
                    ad:44:cd:31:a7:09:76:0a:53:d3:4b:d6:b7:01:d3:
                    07:21:18:88:49:34:bd:38:37:be:41:96:33:db:7b:
                    9e:9b:a8:02:4c:67:c7:41:57:69:a1:05:ec:75:7a:
                    d2:a7:3e:6d:70:43:85:c8:2f:82:2a:c6:e1:2e:d0:
                    aa:d9:49:0f:03:2a:d8:b1:f9:7b:9a:96:89:a8:03:
                    d0:4d:20:fd:12:74:e3:9f:ed:9e:0e:d4:53:06:f4:
                    c6:f1:7b:d5:4f:76:4d:67:d4:d1:fc:78:92:b5:33:
                    cf:8b:1d:65:d2:c2:bf:0a:2e:31:7d:c9:8c:92:f6:
                    16:64:17:3f:35:b2:ba:26:f7:aa:e3:d6:65:f4:aa:
                    9b:5b:8e:64:b7:7d:42:f9:d2:cf:60:8f:05:d0:98:
                    76:9e:c5:24:bf:b6:12:63:f6:14:93:8a:b7:64:20:
                    41:03
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier: 
                52:50:45:FF:18:BB:7D:0F:FC:F5:AC:81:C2:72:19:D0:91:B2:78:15
            X509v3 Authority Key Identifier: 
                keyid:A7:BD:BC:36:54:06:75:37:78:34:64:AD:43:55:37:16:E0:5E:3A:4A
                DirName:/C=RU/ST=Siberia/L=Novosibirsk/O=Eltex/OU=Eltex SC/CN=ca.test.loc/emailAddress=ca@test.loc
                serial:15:89:34:29:DC:66:70:36:EF:DA:4E:AE:E6:3A:37:08:2F:21:B1:FA
            X509v3 Key Usage: critical
                Digital Signature, Non Repudiation
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication
            X509v3 Subject Alternative Name: 
                IP Address:192.168.1.1
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        7a:8f:66:b8:73:0e:16:5d:70:dd:b4:6f:14:82:d0:63:13:a6:
        93:a5:e1:f1:fc:d7:4a:b6:ba:53:f0:de:85:28:b0:37:44:bb:
        75:40:14:62:da:d4:89:65:19:f9:a3:0f:44:e6:2e:c1:c0:c4:
        c3:59:16:8d:bf:73:33:2b:63:dc:dd:76:7d:67:4c:d9:8a:ce:
        d2:96:34:f1:fe:25:a6:00:16:b0:09:08:79:df:08:8c:30:4f:
        2f:6b:7e:48:81:69:3f:a8:52:f7:8f:99:b7:c3:56:d8:ab:1d:
        45:a1:56:1e:23:c4:b4:43:df:6d:f4:61:e9:ca:0d:bc:cf:ee:
        9c:9c:08:b8:11:5d:9d:f3:5c:23:3a:eb:e0:8a:a3:54:a8:a5:
        61:ba:9f:29:81:5f:be:16:af:02:d1:8c:8b:de:57:2e:e8:ac:
        0f:f4:67:1e:d2:87:26:73:0f:cc:8b:9f:83:37:52:02:86:68:
        a9:16:31:09:0f:22:4f:d1:62:40:cd:f6:aa:01:6e:bc:ac:87:
        bf:95:47:55:7e:23:b5:0a:99:20:1a:8d:f4:4f:35:73:4e:0a:
        d5:3c:73:ff:72:bb:a1:be:72:00:34:de:a8:ec:80:9f:73:73:
        f7:15:7b:d0:c6:30:98:9f:36:38:19:e4:c2:7f:2f:34:1a:06:
        bf:70:66:bd:a7:60:b6:97:64:75:49:b9:d1:af:a9:c4:84:66:
        d1:87:86:98:28:d0:82:43:ac:b0:d5:bc:5a:12:77:f5:27:0b:
        18:df:f2:1e:db:87:06:75:36:58:66:ef:31:3e:2c:f3:4a:ba:
        93:cd:07:cd:45:0f:1f:58:5f:23:ef:df:15:b4:22:30:aa:cd:
        51:22:d4:22:9b:f1:4e:35:56:52:9e:76:ee:be:d3:d7:88:5c:
        57:16:9b:fa:b3:5b:67:a0:79:57:29:da:e4:38:fd:c7:3e:8f:
        a7:a6:2c:44:d2:00:b5:bd:a4:97:3e:69:43:58:a8:aa:83:af:
        3c:d4:7c:a9:25:e0:02:62:18:53:55:b2:44:12:c6:94:15:fb:
        49:18:0f:0c:5d:13:ed:17:d1:a4:d4:59:9f:a1:7e:95:c5:bc:
        da:8e:13:bd:ce:a8:d0:5f:bb:fa:52:11:29:a4:db:8e:9c:16:
        54:f1:60:e4:4a:18:8d:51:a0:9a:86:ef:d0:e9:ec:c9:f4:10:
        9e:09:97:03:c3:b3:20:1a:a2:ed:d8:1a:30:42:f4:3a:3e:c1:
        6e:94:53:b4:65:fc:53:3d:46:46:fc:32:65:4a:d7:cc:26:af:
        e7:e5:06:32:99:ad:33:08:37:c5:c7:88:81:1c:23:2b:3d:41:
        a6:fc:d6:cb:1a:d3:4c:24
root:~/openssl-ca$

Создание приватного ключа и сертификата X.509 для IPsec пира завершено. Поскольку генерация ключевой пары для других пиров аналогична - приведем пример генерации ключевой пары для второго пира:

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private/server2_key.pem
openssl req -config openssl.cnf -key private/server2_key.pem -new -sha256 -subj "/C=RU/ST=Siberia/L=Novosibirsk/O=Eltex/OU=Eltex SC/CN=server2.esr-test.loc/emailAddress=server2@esr-test.loc" -addext "subjectAltName = IP:192.168.1.2" -out csr/server2_req.pem
openssl ca -config openssl.cnf -extensions v3_ipsec_peer -days 365 -notext -md sha256 -batch -in csr/server2_req.pem -out certs/server2_crt.pem

Отзыв сертификата X.509

Процедура отзыва сертификата X.509, подписанного УЦ выполняется в два этапа. Сначала производится отзыв сертификата (для примера отзовем сертификат пира server1):

openssl ca -config openssl.cnf -revoke certs/server1_crt.pem
root:~/openssl-ca$ openssl ca -config openssl.cnf -revoke certs/server1_crt.pem
Using configuration from openssl.cnf
Revoking Certificate 1000.
Data Base Updated
root:~/openssl-ca$ 

После чего список отозванных сертификатов перегенерируется:

openssl ca -config openssl.cnf -gencrl -out crl/ca_crl.pem

Просмотрим список отозванных сертификатов и обнаружим в нем сертификат пира server1:

openssl crl -text -noout -in crl/ca_crl.pem
root:~/openssl-ca$ openssl crl -text -noout -in crl/ca_crl.pem
Certificate Revocation List (CRL):
        Version 2 (0x1)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = RU, ST = Siberia, L = Novosibirsk, O = Eltex, OU = Eltex SC, CN = ca.test.loc, emailAddress = ca@test.loc
        Last Update: Apr  3 10:20:43 2023 GMT
        Next Update: May  3 10:20:43 2023 GMT
        CRL extensions:
            X509v3 Authority Key Identifier: 
                17:DA:AD:39:A0:59:31:97:70:C6:BF:43:47:74:F3:B1:B5:AB:AD:DA
            X509v3 CRL Number: 
                4097
Revoked Certificates:
    Serial Number: 1000
        Revocation Date: Apr  3 10:20:32 2023 GMT
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        19:26:82:71:e2:32:f3:e0:81:d6:4d:f0:63:c0:2c:31:dd:c3:
        f6:1a:25:2b:3a:05:7e:ca:d0:80:76:e7:9c:c7:a5:6b:9e:18:
        00:0d:82:da:80:c8:3b:d7:fc:1d:4f:8d:6e:72:ef:8b:29:b3:
        8b:b3:1e:a6:83:c9:72:0f:38:dd:26:04:45:c0:46:8b:ce:86:
        ae:81:02:24:98:5e:21:89:fe:91:b2:68:68:90:dd:c1:c9:29:
        ec:41:20:79:8c:a6:93:04:57:f0:b5:64:6b:04:22:95:f7:05:
        69:d8:56:22:e2:53:d4:36:96:49:d4:05:a4:8d:89:a0:c2:b8:
        75:0d:7d:75:64:5f:37:42:a5:2a:05:d5:28:ed:b4:dc:d6:85:
        2a:d1:bb:76:46:0e:c0:03:72:23:5f:f2:d2:36:13:c8:5f:8c:
        f1:de:e1:aa:09:26:2a:9c:0a:2a:81:34:47:69:77:56:50:44:
        0f:0f:17:94:24:11:70:39:2e:71:54:09:a8:6b:da:89:36:f9:
        54:af:68:3a:ea:87:80:48:5e:31:f2:3a:7a:2a:e4:b1:ee:4d:
        99:2a:6b:5f:64:76:00:0f:93:42:14:0f:09:a5:6c:e2:c6:7f:
        6b:0b:1a:78:e8:bc:0b:a6:ac:92:7f:95:69:26:a7:90:04:c6:
        37:6f:64:3c:50:53:03:c0:c4:f9:1f:38:01:61:5b:c8:20:fb:
        ad:38:b5:53:ac:7a:85:d6:76:2e:91:35:01:f1:3c:c0:01:db:
        b0:34:71:b7:60:67:49:80:3c:0a:6c:1a:d8:e5:4a:24:9c:16:
        a0:9b:ae:48:92:c8:c2:ce:c4:51:b0:b8:fc:ec:90:42:66:59:
        80:e2:ec:b9:8c:4f:ab:ff:9b:96:9a:bb:c0:44:49:fa:14:a0:
        0b:ad:91:66:21:fe:e8:9c:46:a8:0b:8d:13:cf:81:85:86:0e:
        81:44:7a:21:b8:fc:7e:9f:17:dd:fe:5a:48:2c:3e:35:ab:0d:
        01:c2:e0:8d:63:4b:7a:ad:82:6e:2d:ce:df:2f:84:43:5b:5d:
        90:8d:d8:83:bd:23:07:4b:2b:89:b3:de:d5:cf:f5:8d:c9:a4:
        69:72:4f:db:f5:cf:43:de:06:9c:b2:ff:5c:90:b2:c0:aa:c0:
        fa:e4:a8:4e:a0:96:0c:b1:77:38:89:d9:18:c7:d9:61:bd:4d:
        38:fc:08:1c:9a:b0:eb:55:85:56:a5:07:d1:56:af:ef:69:80:
        dd:a3:80:d5:cc:b6:0f:ae:61:c6:44:8c:9c:f2:d7:8e:72:e0:
        d4:7c:db:92:93:53:5f:c5:ae:03:81:83:fa:15:c6:76:87:1d:
        b2:0b:93:ee:83:13:af:d3
root:~/openssl-ca$

Отзыв сертификата успешно завершен.

  • Нет меток