Центр сертификации OpenSSL (Root и Intermediate CA certificates) на Debian 11
PKI (Public Key Infrastructure) — это система, которая использует цифровые сертификаты для проверки подлинности и шифрования данных между устройствами и службами.
Разберем как поднять двухуровневую PKI (Root и Intermediate CA) инфраструктуру на базе OpenSSL в Debian 11 Bullseye. Схема двухуровневой PKI инфраструктуры.

Используемые сервера и их обозначения в инструкции ниже:
- Корневой ЦС — rootCA
- Промедуточный ЦС — intermidiateCA
- OCSP Responder — intermidiateCA
- Веб-сервер — webCA
Устанавливаем OpenSSL на оба сервера (rootCA, intermidiateCA):
YXB0LWdldCUyMGluc3RhbGwlMjBvcGVuc3NsJTIwLXk=
Корневой центр сертификации (Offline Root CA)
Структура каталогов и файлов
Создадим структуру каталогов для хранения файлов ЦС, сертификатов и закрытых ключей.
bWtkaXIlMjAtcCUyMCUyRm9wdCUyRkNBJTJGcm9vdENBJTJGJTdCY2VydHMlMkNjcmwlMkNuZXdjZXJ0cyUyQ3ByaXZhdGUlMkNjc3IlN0Q=
Y2QlMjAlMkZvcHQlMkZDQSUyRnJvb3RDQQ==
где:
certs | Этот каталог содержит сертификаты, сгенерированные и подписанные ЦС. |
crl | Каталог списка отзыва сертификатов (CRL) содержит списки отзыва сертификатов, сгенерированные ЦС. |
newcerts | В этом каталоге хранится копия каждого сертификата, подписанного ЦС, с серийным номером сертификата в качестве имени файла. |
private | Этот каталог содержит закрытые ключи для ЦС, включая закрытые ключи корневого ЦС и промежуточного ЦС. Эти ключи используются для подписи сертификатов и CRL. |
csr | В этом каталоге хранится копия каждого запроса сертификата. |
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJBJUQxJTgyJUQxJTgzJUQxJTgwJUQxJTgzJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUJFJUQwJUIyJTIwJUQwJUI4JTIwJUQwJUI3JUQwJUIwJUQwJUI0JUQwJUIwJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTJDJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJEJUQwJUI1JUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQxJTg1JTIwJUQwJUI4JUQxJTg1JTIwJUQwJUJEJUQwJUI4JUQxJTg1Lg==
touch index
dG91Y2glMjBzZXJpYWw=
dG91Y2glMjBjcmxudW1iZXI=
b3BlbnNzbCVDMiVBMHJhbmQlQzIlQTAtaGV4JUMyJUEwMjAlQzIlQTAlM0UlQzIlQTBzZXJpYWw=
ZWNobyVDMiVBMDAwJUMyJUEwJTNFJUMyJUEwY3JsbnVtYmVy
JUQwJUIzJUQwJUI0JUQwJUI1JTNB
index | Выступает в качестве плоской базы для отслеживания выписанных сертификатов. |
serial | Используется для отслеживания последнего серийного номера, который был использован для выдачи сертификата. Важно, чтобы никогда не было выдано двух сертификатов с одинаковым серийным номером от одного и того же ЦС. |
crlnumber | Содержит текущий номер CRL. Номер CRL — это уникальное целое число, которое увеличивается каждый раз при создании нового списка отзыва сертификатов (CRL). Это помогает отслеживать последние CRL, выданные ЦС, и гарантировать, что CRL выдаются в надлежащей последовательности. |
Конфигурация Openssl
Создадим конфигурационный файл /opt/CA/rootCA/openssl-rca.cnf
для корневого ЦС, со следующим содержанием (некоторые моменты я в конфигурации подсветил).
#
# OpenSSL configuration for the Root Certification Authority.
#
JTVCJTIwY2ElMjAlNUQ=
ZGVmYXVsdF9jYSUyMCUzRCUyMENBX2RlZmF1bHQ=
[ CA_default ]
# Directory and file locations.
ZGlyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwJTJGb3B0JTJGQ0ElMkZyb290Q0E=
certs = $dir/certs
Y3JsX2RpciUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMCUyNGRpciUyRmNybA==
new_certs_dir = $dir/newcerts
ZGF0YWJhc2UlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjAlMjRkaXIlMkZpbmRleA==
serial = $dir/serial
UkFOREZJTEUlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjAlMjRkaXIlMkZwcml2YXRlJTJGLnJhbmQ=
# The root key and root certificate.
cHJpdmF0ZV9rZXklMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjAlMjRkaXIlMkZwcml2YXRlJTJGcmNhLmtleQ==
certificate = $dir/certs/rca.crt
JTIzJTIwRm9yJTIwY2VydGlmaWNhdGUlMjByZXZvY2F0aW9uJTIwbGlzdHMu
Y3JsbnVtYmVyJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwJTI0ZGlyJTJGY3JsbnVtYmVy
Y3JsJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwJTI0ZGlyJTJGY3JsJTJGcmNhLmNybA==
Y3JsX2V4dGVuc2lvbnMlMjAlMjAlMjAlMjAlM0QlMjBjcmxfZXh0
default_crl_days = 182
default_md = sha256
bmFtZV9vcHQlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBjYV9kZWZhdWx0
cert_opt = ca_default
default_days = 3650
ZGVmYXVsdF9tZCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMHNoYTI1Ng==
preserve = no
unique_subject = no
cG9saWN5JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwcG9saWN5X3N0cmljdA==
JTIzJTIwRm9yJTIwdGhlJTIwQ0ElMjBwb2xpY3k=
JTVCJTIwcG9saWN5X3N0cmljdCUyMCU1RA==
countryName = optional
stateOrProvinceName = optional
organizationName = optional
b3JnYW5pemF0aW9uYWxVbml0TmFtZSUyMCUyMCUzRCUyMG9wdGlvbmFs
Y29tbW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMHN1cHBsaWVk
emailAddress = optional
JTVCJTIwcmVxJTIwJTVE
default_bits = 2048
distinguished_name = req_distinguished_name
c3RyaW5nX21hc2slMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjB1dGY4b25seQ==
ZGVmYXVsdF9tZCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMHNoYTI1Ng==
ZGVmYXVsdF9rZXlmaWxlJTIwJTIwJTIwJTIwJTIwJTNEJTIwcHJpdmF0ZSUyRnJjYS5rZXk=
eDUwOV9leHRlbnNpb25zJTIwJTIwJTIwJTIwJTIwJTNEJTIwdjNfY2E=
JTVCJTIwcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZSUyMCU1RA==
Y291bnRyeU5hbWUlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBDb3VudHJ5JTIwTmFtZSUyMCgyJTIwbGV0dGVyJTIwY29kZSk=
stateOrProvinceName = State or Province Name (full name)
bG9jYWxpdHlOYW1lJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwTG9jYWxpdHklMjBOYW1lJTIwKGVnJTJDJTIwY2l0eSk=
b3JnYW5pemF0aW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyME9yZ2FuaXphdGlvbiUyME5hbWUlMjAoZWclMkMlMjBjb21wYW55KQ==
organizationalUnitName = Organizational Unit Name (eg, section)
Y29tbW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMENvbW1vbiUyME5hbWUlMjAoZWclMkMlMjB5b3VyJTIwbmFtZSUyMG9yJTIweW91ciUyMHNlcnZlciUyMGhvc3RuYW1lKQ==
ZW1haWxBZGRyZXNzJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwRW1haWwlMjBBZGRyZXNz
[ v3_ca ]
c3ViamVjdEtleUlkZW50aWZpZXIlMjAlMjAlMjAlMjAlMjAlM0QlMjBoYXNo
YXV0aG9yaXR5S2V5SWRlbnRpZmllciUyMCUyMCUyMCUzRCUyMGtleWlkJTNBYWx3YXlzJTJDaXNzdWVy
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
JTVCJUMyJUEwdjNfaW50ZXJtZWRpYXRlX2NhJUMyJUEwJTVE
c3ViamVjdEtleUlkZW50aWZpZXIlQzIlQTAlMjAlMjAlMjAlMjAlM0QlQzIlQTBoYXNo
YXV0aG9yaXR5S2V5SWRlbnRpZmllciVDMiVBMCUyMCUyMCUzRCVDMiVBMGtleWlkJTNBYWx3YXlzJTJDaXNzdWVy
JTIzJTIwQXMlMjBwYXRobGVuJTIwcmVzdHJpY3RzJTIwY3JlYXRpbmclMjBhbnklMjBmdXJ0aGVyJTIwaW50ZXJtaWRpYXRlJTIwQ0ElMjBpbiUyMHRoZSUyMGNoYWluLg==
YmFzaWNDb25zdHJhaW50cyVDMiVBMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCVDMiVBMGNyaXRpY2FsJTJDJUMyJUEwQ0ElM0F0cnVlJTJDJUMyJUEwcGF0aGxlbiUzQTA=
a2V5VXNhZ2UlQzIlQTAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlQzIlQTBjcml0aWNhbCUyQyVDMiVBMGRpZ2l0YWxTaWduYXR1cmUlMkMlQzIlQTBjUkxTaWduJTJDJUMyJUEwa2V5Q2VydFNpZ24=
crlDistributionPoints = crldp1_section
JTVCJTIwY3JsX2V4dCUyMCU1RA==
# CRL extensions.
YXV0aG9yaXR5S2V5SWRlbnRpZmllciVDMiVBMCUyMCUyMCUzRCVDMiVBMGtleWlkJTNBYWx3YXlzJTJDaXNzdWVy
JTVCJTIwY3JsZHAxX3NlY3Rpb24lMjAlNUQ=
fullname = URI:http://ca.example.com/rca.crl
JUQwJTlGJUQwJUJFJUQxJThGJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUJGJUQwJUJFJTIwJUQwJUJFJUQxJTgyJUQwJUJDJUQwJUI1JUQxJTg3JUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQwJUJDJTIwJUQwJUJGJUQxJTgzJUQwJUJEJUQwJUJBJUQxJTgyJUQwJUIwJUQwJUJDJTNB
[ CA_default ] dir | Путь к структуре каталогов CA. В случае если вы создавали структуру в отличном от статьи месте, то необходимо это отразить в конфигурации в этой директиве. |
[ CA_default ] default_days | Задается по-умолчанию срок действия выпускаемых сертификатов, для меня приемлемо 10 лет для издающих CA. |
[ v3_intermediate_ca ] basicConstraints | Обращаю внимание на параметр pathlen в директиве. Параметр pathlen ограничивает создание любого дополнительного промежуточного CA в цепочке. Если планируется или предпологается еще один несколько последущих промежуточных сертификатов CA, я бы рекомендовал либо присвоить более высокое значение для pathlen , либо просто удалить в следующем разделе. |
[ crldp1_section ] fullname | Указывется URL путь к списку отзыва сертификатов (CRL). Корректируем значение согласно своим данным веб-серера где будет размещатся CRL файл. |
Остальное все в целом стандартные параметры, можно оставлять без изменения.
Создание закрытого ключа Root CA
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI3JUQwJUIwJUQwJUJBJUQxJTgwJUQxJThCJUQxJTgyJUQxJThCJUQwJUI5JTIwJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JTIwUlNBJUMyJUEwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJBJUQwJUJFJUQxJTgwJUQwJUJEJUQwJUI1JUQwJUIyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUE2JUQwJUExJTIwJUQxJTgxJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JUQwJUJDJTIwJUQwJUIwJUQwJUJCJUQwJUIzJUQwJUJFJUQxJTgwJUQwJUI4JUQxJTgyJUQwJUJDJUQwJUIwJTIwJUQxJTg4JUQwJUI4JUQxJTg0JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQxJThGJUMyJUEwQUVTLTI1NiUyMCVEMCVCOCUyMCVEMCVCRCVEMCVCMCVEMCVCNCVEMCVCNSVEMCVCNiVEMCVCRCVEMSU4QiVEMCVCQyUyMCVEMCVCRiVEMCVCMCVEMSU4MCVEMCVCRSVEMCVCQiVEMCVCNSVEMCVCQy4=
openssl genrsa -aes256 -out private/rca.key 4096
Generating RSA private key, 4096 bit long modulus (2 primes)
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4lMkIlMkIlMkIlMkI=
....................................................................++++
ZSUyMGlzJTIwNjU1MzclMjAoMHgwMTAwMDEp
RW50ZXIlMjBwYXNzJTIwcGhyYXNlJTIwZm9yJTIwcHJpdmF0ZSUyRnJjYS5rZXklM0E=
VmVyaWZ5aW5nJTIwLSUyMEVudGVyJTIwcGFzcyUyMHBocmFzZSUyMGZvciUyMHByaXZhdGUlMkZyY2Eua2V5JTNB
-passout pass:12345
для указания желаемого пароля при генерации закрытого ключа, где вместо 12345
указываем желаемый пароль.Можно сгенерировать закрытый ключ RSA без пароля.
b3BlbnNzbCUyMGdlbnJzYSUyMC1vdXQlMjBwcml2YXRlJTJGcmNhLmtleSUyMDQwOTY=
JUQwJTk1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQwJUJFJTIwJUQxJTgzJUQwJUI0JUQwJUIwJUQwJUJCJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQwJUJGJUQwJUIwJUQxJTgwJUQwJUJFJUQwJUJCJUQxJThDJTIwJUQwJUI4JUQwJUI3JTIwJUQwJUI3JUQwJUIwJUQwJUJBJUQxJTgwJUQxJThCJUQxJTgyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUIwJTIwUlNBJTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQxJTgxJUQwJUI0JUQwJUI1JUQwJUJCJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQxJThEJUQxJTgyJUQwJUJFJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQxJTgyJUQwJUIwJUQwJUJBLg==
cp private/rca.key private/rca.key.orig
openssl rsa -in private/rca.key.orig -passin pass:12345 -out private/rca.key
rm private/rca.key.orig
-passin pass:12345
, указываем вместо 12345
ваш пароль.Для безопасности ограничим доступ к закрытому ключу корневого ЦС.
Y2htb2QlMjA0MDAlMjBwcml2YXRlJTJGcmNhLmtleQ==
Создание сертификата Root CA
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUMyJUEwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJBJUQwJUJFJUQxJTgwJUQwJUJEJUQwJUI1JUQwJUIyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUE2JUQwJUExJTIwKCVEMCVCRiVEMSU4MCVEMCVCOCUyMCVEMSU4MSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCOCUyMCVEMCVCRiVEMCVCRSVEMSU4MiVEMSU4MCVEMCVCNSVEMCVCMSVEMSU4MyVEMCVCNSVEMSU4MiVEMSU4MSVEMSU4RiUyMCVEMCVCMiVEMCVCMiVEMCVCNSVEMSU4MSVEMSU4MiVEMCVCOCUyMCVEMCVCRiVEMCVCMCVEMSU4MCVEMCVCRSVEMCVCQiVEMSU4QyUyMCVEMCVCRSVEMSU4MiUyMCVEMCVCNyVEMCVCMCVEMCVCQSVEMSU4MCVEMSU4QiVEMSU4MiVEMCVCRSVEMCVCMyVEMCVCRSUyMCVEMCVCQSVEMCVCQiVEMSU4RSVEMSU4NyVEMCVCMCku
b3BlbnNzbCUyMHJlcSUyMC1jb25maWclMjBvcGVuc3NsLXJjYS5jbmYlMjAta2V5JTIwcHJpdmF0ZSUyRnJjYS5rZXklMjAtbmV3JTIwLXg1MDklMjAtZGF5cyUyMDczMDAlMjAtcmFuZF9zZXJpYWwlMjAtc2hhMjU2JTIwLWV4dGVuc2lvbnMlMjB2M19jYSUyMC1vdXQlMjBjZXJ0cyUyRnJjYS5jcnQ=
Enter pass phrase for private/rca.key:
WW91JTIwYXJlJTIwYWJvdXQlMjB0byUyMGJlJTIwYXNrZWQlMjB0byUyMGVudGVyJTIwaW5mb3JtYXRpb24lMjB0aGF0JTIwd2lsbCUyMGJlJTIwaW5jb3Jwb3JhdGVk
aW50byUyMHlvdXIlMjBjZXJ0aWZpY2F0ZSUyMHJlcXVlc3Qu
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
Rm9yJTIwc29tZSUyMGZpZWxkcyUyMHRoZXJlJTIwd2lsbCUyMGJlJTIwYSUyMGRlZmF1bHQlMjB2YWx1ZSUyQw==
If you enter '.', the field will be left blank.
LS0tLS0=
Q291bnRyeSUyME5hbWUlMjAoMiUyMGxldHRlciUyMGNvZGUpJTIwJTVCJTVEJTNBUlU=
State or Province Name (full name) []:
TG9jYWxpdHklMjBOYW1lJTIwKGVnJTJDJTIwY2l0eSklMjAlNUIlNUQlM0E=
T3JnYW5pemF0aW9uJTIwTmFtZSUyMChlZyUyQyUyMGNvbXBhbnkpJTIwJTVCJTVEJTNBQUJDJTIwTExD
T3JnYW5pemF0aW9uYWwlMjBVbml0JTIwTmFtZSUyMChlZyUyQyUyMHNlY3Rpb24pJTIwJTVCJTVEJTNB
Common Name (eg, your name or your server hostname) []:ABC LLC Root Certification Authority
RW1haWwlMjBBZGRyZXNzJTIwJTVCJTVEJTNB
req
следует указывать файл конфигурации для использования с опцией –config
, в противном случае OpenSSL будет использовать по умолчанию конфигурационный файл /etc/pki/tls/openssl.cnf
JUQwJTkyJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JTIwJUQwJUI1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUJGJUQxJTgwJUQwJUI4JTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI4JTIwJUQwJUJBJUQwJUJFJUQxJTgwJUQwJUJEJUQwJUI1JUQwJUIyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQxJTgzJUQxJThGJTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJTgzJTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUIwJUQwJUJEJUQwJUJEJUQxJTgzJUQxJThFJTIwJUQwJUJDJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQwJUIyJUQxJThCJUQxJTg4JUQwJUI1JTJDJTIwJUQwJUIyJUQxJThCJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JUQxJTgyJUQwJUI1JTIwJUQwJUJFJUQxJTg4JUQwJUI4JUQwJUIxJUQwJUJBJUQxJTgzLg==
То используйте следующую команды.
openssl req -config openssl-rca.cnf -key private/rca.key -new -x509 -days 7300 -set_serial "0x`openssl rand -hex 20`" -sha256 -extensions v3_ca -out certs/rca.crt
Проверим корневой сертификат, выведем информацию о нем.
openssl x509 -noout -text -in certs/rca.crt -certopt no_version,no_pubkey,no_sigdump
Q2VydGlmaWNhdGUlM0E=
JTIwJTIwJTIwJTIwRGF0YSUzQQ==
Serial Number:
39:35:fc:15:0a:29:e5:bb:a9:6f:0a:7d:7c:20:6d:a0:4b:a4:f7:60
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2lnbmF0dXJlJTIwQWxnb3JpdGhtJTNBJTIwc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwSXNzdWVyJTNBJTIwQyUyMCUzRCUyMFJVJTJDJTIwTyUyMCUzRCUyMEFCQyUyMExMQyUyQyUyMENOJTIwJTNEJTIwQUJDJTIwTExDJTIwUm9vdCUyMENlcnRpZmljYXRpb24lMjBBdXRob3JpdHk=
Validity
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQmVmb3JlJTNBJTIwT2N0JTIwJTIwNSUyMDExJTNBNDElM0EzNCUyMDIwMjMlMjBHTVQ=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQWZ0ZXIlMjAlM0ElMjBTZXAlMjAzMCUyMDExJTNBNDElM0EzNCUyMDIwNDMlMjBHTVQ=
Subject: C = RU, O = ABC LLC, CN = ABC LLC Root Certification Authority
X509v3 extensions:
X509v3 Subject Key Identifier:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRUElM0E3QiUzQUFBJTNBMDAlM0FCQSUzQUVCJTNBNUMlM0ExMCUzQTA1JTNBRjMlM0FDMSUzQTE2JTNBOTQlM0E4RSUzQTFGJTNBNDUlM0E1RCUzQTBCJTNBMjAlM0ExNg==
X509v3 Authority Key Identifier:
keyid:EA:7B:AA:00:BA:EB:5C:10:05:F3:C1:16:94:8E:1F:45:5D:0B:20:16
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQmFzaWMlMjBDb25zdHJhaW50cyUzQSUyMGNyaXRpY2Fs
CA:TRUE
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwS2V5JTIwVXNhZ2UlM0ElMjBjcml0aWNhbA==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRGlnaXRhbCUyMFNpZ25hdHVyZSUyQyUyMENlcnRpZmljYXRlJTIwU2lnbiUyQyUyMENSTCUyMFNpZ24=
Список отзывов (CRL)
Корневой ЦС должен публиковать списки отзыва сертификатов через регулярные промежутки времени или после отзыва сертификата. Хоть пока не было никаких отзывов, но клиенты и серверы, проверяющие любой из выписанных сертификатов, будут запрашивать обновленный CRL с веб-адреса, опубликованного в сертификатах. Поэтому нам необходимо создать начальный, хоть и пустой CRL корневого ЦС.
openssl ca -config openssl-rca.cnf -gencrl -out crl/rca.crl
JUQwJTkyJUQxJThCJUQwJUIyJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJDJTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTg2JUQwJUI4JUQxJThFJTIwJUQwJUJFJTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUI1JTIwJUQwJUJFJUQxJTgyJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwLg==
openssl crl -in crl/rca.crl -text -noout
Certificate Revocation List (CRL):
Version 2 (0x1)
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2lnbmF0dXJlJTIwQWxnb3JpdGhtJTNBJTIwc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwSXNzdWVyJTNBJTIwQyUyMCUzRCUyMFJVJTJDJTIwTyUyMCUzRCUyMEFCQyUyMExMQyUyQyUyMENOJTIwJTNEJTIwQUJDJTIwTExDJTIwUm9vdCUyMENlcnRpZmljYXRpb24lMjBBdXRob3JpdHk=
Last Update: Oct 5 12:09:25 2023 GMT
Next Update: Nov 4 12:09:25 2023 GMT
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwQ1JMJTIwZXh0ZW5zaW9ucyUzQQ==
X509v3 Authority Key Identifier:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwa2V5aWQlM0FFQSUzQTdCJTNBQUElM0EwMCUzQUJBJTNBRUIlM0E1QyUzQTEwJTNBMDUlM0FGMyUzQUMxJTNBMTYlM0E5NCUzQThFJTNBMUYlM0E0NSUzQTVEJTNBMEIlM0EyMCUzQTE2
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQ1JMJTIwTnVtYmVyJTNB
0
Tm8lMjBSZXZva2VkJTIwQ2VydGlmaWNhdGVzLg==
Промежуточный центр сертификации (Issuing Sub CA)
Структура каталогов и файлов
Создадим структуру каталогов для хранения файлов ЦС, сертификатов и закрытых ключей.
mkdir -p /opt/CA/intermediateCA/{certs,crl,newcerts,private,csr}
Y2QlQzIlQTAlMkZvcHQlMkZDQSUyRmludGVybWVkaWF0ZUNB
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJBJUQxJTgyJUQxJTgzJUQxJTgwJUQxJTgzJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUJFJUQwJUIyJTIwJUQwJUI4JTIwJUQwJUI3JUQwJUIwJUQwJUI0JUQwJUIwJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTJDJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJEJUQwJUI1JUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQxJTg1JTIwJUQwJUI4JUQxJTg1JTIwJUQwJUJEJUQwJUI4JUQxJTg1Lg==
dG91Y2glMjBpbmRleA==
touch serial
dG91Y2glMjBjcmxudW1iZXI=
b3BlbnNzbCVDMiVBMHJhbmQlQzIlQTAtaGV4JUMyJUEwMjAlQzIlQTAlM0UlQzIlQTBzZXJpYWw=
ZWNobyVDMiVBMDAwJUMyJUEwJTNFJUMyJUEwY3JsbnVtYmVy
Конфигурация OpenSSL
Создадим конфигурационный файл (/opt/CA/intermediateCA/openssl-ica.cnf
) для промежуточного ЦС, со следующим содержанием (некоторые моменты я в конфигурации подсветил).
JTIz
# OpenSSL configuration for the Intermediate Certification Authority.
#
JTVCJTIwY2ElMjAlNUQ=
ZGVmYXVsdF9jYSUyMCUzRCUyMENBX2RlZmF1bHQ=
JTVCJTIwQ0FfZGVmYXVsdCUyMCU1RA==
# Directory and file locations.
dir = /opt/CA/intermediateCA
Y2VydHMlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjAlMjRkaXIlMkZjZXJ0cw==
crl_dir = $dir/crl
bmV3X2NlcnRzX2RpciUyMCUyMCUyMCUyMCUyMCUzRCUyMCUyNGRpciUyRm5ld2NlcnRz
database = $dir/index
c2VyaWFsJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwJTI0ZGlyJTJGc2VyaWFs
RANDFILE = $dir/private/.rand
JTIzJTIwVGhlJTIwcm9vdCUyMGtleSUyMGFuZCUyMHJvb3QlMjBjZXJ0aWZpY2F0ZS4=
private_key = $dir/private/ica.key
certificate = $dir/certs/ica.crt
# For certificate revocation lists.
crlnumber = $dir/crlnumber
crl = $dir/crl/ica.crl
Y3JsX2V4dGVuc2lvbnMlMjAlMjAlMjAlMjAlM0QlMjBjcmxfZXh0
default_crl_days = 30
ZGVmYXVsdF9tZCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMHNoYTI1Ng==
name_opt = ca_default
Y2VydF9vcHQlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBjYV9kZWZhdWx0
ZGVmYXVsdF9kYXlzJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwMzY1MA==
default_md = sha256
cHJlc2VydmUlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBubw==
unique_subject = no
policy = policy_strict
# For the CA policy
[ policy_strict ]
Y291bnRyeU5hbWUlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBvcHRpb25hbA==
stateOrProvinceName = optional
b3JnYW5pemF0aW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMG9wdGlvbmFs
organizationalUnitName = optional
Y29tbW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMHN1cHBsaWVk
emailAddress = optional
JTIzJTIwRm9yJTIwdGhlJTIwJ2FueXRoaW5nJyUyMHBvbGljeQ==
JTIzJTIwQXQlMjB0aGlzJTIwcG9pbnQlMjBpbiUyMHRpbWUlMkMlMjB5b3UlMjBtdXN0JTIwbGlzdCUyMGFsbCUyMGFjY2VwdGFibGUlMjAnb2JqZWN0JyUyMHR5cGVzLg==
JTVCJTIwcG9saWN5X2FueXRoaW5nJTIwJTVE
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
Z2l2ZW5OYW1lJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwb3B0aW9uYWw=
Y29tbW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMHN1cHBsaWVk
emailAddress = optional
title = optional
JTVCJTIwcmVxJTIwJTVE
default_bits = 2048
distinguished_name = req_distinguished_name
string_mask = utf8only
ZGVmYXVsdF9tZCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMHNoYTI1Ng==
default_keyfile = private/ica.key
req_extensions = req_ext
x509_extensions = v3_intermediate_ca
JTVCJTIwcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZSUyMCU1RA==
Y291bnRyeU5hbWUlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBDb3VudHJ5JTIwTmFtZSUyMCgyJTIwbGV0dGVyJTIwY29kZSk=
c3RhdGVPclByb3ZpbmNlTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMFN0YXRlJTIwb3IlMjBQcm92aW5jZSUyME5hbWUlMjAoZnVsbCUyMG5hbWUp
localityName = Locality Name (eg, city)
organizationName = Organization Name (eg, company)
organizationalUnitName = Organizational Unit Name (eg, section)
Y29tbW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMENvbW1vbiUyME5hbWUlMjAoZWclMkMlMjB5b3VyJTIwbmFtZSUyMG9yJTIweW91ciUyMHNlcnZlciUyMGhvc3RuYW1lKQ==
emailAddress = Email Address
[ req_ext ]
YmFzaWNDb25zdHJhaW50cyUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMGNyaXRpY2FsJTJDJTIwQ0ElM0F0cnVl
a2V5VXNhZ2UlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBjcml0aWNhbCUyQyUyMGRpZ2l0YWxTaWduYXR1cmUlMkMlMjBjUkxTaWduJTJDJTIwa2V5Q2VydFNpZ24=
JTVCJTIwdjNfaW50ZXJtZWRpYXRlX2NhJTIwJTVE
c3ViamVjdEtleUlkZW50aWZpZXIlMjAlMjAlMjAlMjAlMjAlM0QlMjBoYXNo
YXV0aG9yaXR5S2V5SWRlbnRpZmllciUyMCUyMCUyMCUzRCUyMGtleWlkJTNBYWx3YXlzJTJDaXNzdWVy
# As pathlen restricts creating any further intermidiate CA in the chain.
basicConstraints = critical, CA:true, pathlen:0
a2V5VXNhZ2UlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBjcml0aWNhbCUyQyUyMGRpZ2l0YWxTaWduYXR1cmUlMkMlMjBjUkxTaWduJTJDJTIwa2V5Q2VydFNpZ24=
crlDistributionPoints = crldp1_section
[ crl_ext ]
# CRL extensions.
authorityKeyIdentifier = keyid:always
[ crldp1_section ]
ZnVsbG5hbWUlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBVUkklM0FodHRwJTNBJTJGJTJGY2EuZXhhbXBsZS5jb20lMkZpY2EuY3Js
JTVCJTIwb2NzcCUyMCU1RA==
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
a2V5VXNhZ2UlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjBjcml0aWNhbCUyQyUyMGRpZ2l0YWxTaWduYXR1cmU=
extendedKeyUsage = critical, OCSPSigning
Пояснения по отмеченным пунктам.
[ CA_default ] dir | Путь к структуре каталогов CA. В случае если вы создавали структуру в отличном от статьи месте, то необходимо это отразить в конфигурации в этой директиве. |
[ req ] req_extensions | Данная секция не обязательна в рамках рассматриваемой конфигурации ЦС, но она нужна, если у вас коневой ЦС на Windows CA (AD CA) и выпуск сертификата для промежуточного ЦС. |
[ v3_intermediate_ca ] basicConstraints | Обращаю внимание на параметр pathlen в директиве. Параметр pathlen ограничивает создание любого дополнительного промежуточного CA в цепочке. Если планируется или предпологается еще один несколько последущих промежуточных сертификатов CA, я бы рекомендовал либо присвоить более высокое значение для pathlen , либо просто удалить в следующем разделе. |
[ crldp1_section ] fullname | Указывется URL путь к списку отзыва сертификатов (CRL). Корректируем значение согласно своим данным веб-серера где будет размещатся CRL файл. |
Остальное можно оставлять без изменения.
Создание закрытого ключа Intermediate CA
Создаем закрытый ключ RSA для промежуточного ЦС с использованием алгоритма шифрования AES-256 и надежным паролем.
b3BlbnNzbCUyMGdlbnJzYSUyMC1hZXMyNTYlMjAtb3V0JTIwcHJpdmF0ZSUyRmljYS5rZXklMjA0MDk2
Generating RSA private key, 4096 bit long modulus (2 primes)
........................++++
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4lMkIlMkIlMkIlMkI=
e is 65537 (0x010001)
RW50ZXIlMjBwYXNzJTIwcGhyYXNlJTIwZm9yJTIwcHJpdmF0ZSUyRmljYS5rZXklM0E=
Verifying - Enter pass phrase for private/ica.key:
Создание запроса сертификата Intermediate CA
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJTIwJUQwJUJEJUQwJUIwJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJUMyJUEwKENTUiUyMCVFMiU4MCU5NCUyMGNlcnRpZmljYXRlJTIwc2lnbmluZyUyMHJlcXVlc3QpJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUJDJUQwJUI1JUQwJUI2JUQxJTgzJUQxJTgyJUQwJUJFJUQxJTg3JUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUE2JUQwJUExJTIwKCVEMCVCRiVEMSU4MCVEMCVCOCUyMCVEMSU4MSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCOCUyMCVEMCVCRiVEMCVCRSVEMSU4MiVEMSU4MCVEMCVCNSVEMCVCMSVEMSU4MyVEMCVCNSVEMSU4MiVEMSU4MSVEMSU4RiUyMCVEMCVCMiVEMCVCMiVEMCVCNSVEMSU4MSVEMSU4MiVEMCVCOCUyMCVEMCVCRiVEMCVCMCVEMSU4MCVEMCVCRSVEMCVCQiVEMSU4QyUyMCVEMCVCRSVEMSU4MiUyMCVEMCVCNyVEMCVCMCVEMCVCQSVEMSU4MCVEMSU4QiVEMSU4MiVEMCVCRSVEMCVCMyVEMCVCRSUyMCVEMCVCQSVEMCVCQiVEMSU4RSVEMSU4NyVEMCVCMCku
b3BlbnNzbCUyMHJlcSUyMC1jb25maWclMjBvcGVuc3NsLWljYS5jbmYlMjAtbmV3JTIwLXNoYTI1NiUyMC1rZXklMjBwcml2YXRlJTJGaWNhLmtleSUyMC1vdXQlMjBjc3IlMkZpY2EuY3Ny
Enter pass phrase for private/ica.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
VGhlcmUlMjBhcmUlMjBxdWl0ZSUyMGElMjBmZXclMjBmaWVsZHMlMjBidXQlMjB5b3UlMjBjYW4lMjBsZWF2ZSUyMHNvbWUlMjBibGFuaw==
Rm9yJTIwc29tZSUyMGZpZWxkcyUyMHRoZXJlJTIwd2lsbCUyMGJlJTIwYSUyMGRlZmF1bHQlMjB2YWx1ZSUyQw==
If you enter '.', the field will be left blank.
-----
Q291bnRyeSUyME5hbWUlMjAoMiUyMGxldHRlciUyMGNvZGUpJTIwJTVCJTVEJTNB
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:ABC LLC
T3JnYW5pemF0aW9uYWwlMjBVbml0JTIwTmFtZSUyMChlZyUyQyUyMHNlY3Rpb24pJTIwJTVCJTVEJTNB
Common Name (eg, your name or your server hostname) []:ABC LLC Issuing SubCA
RW1haWwlMjBBZGRyZXNzJTIwJTVCJTVEJTNB
Посмотрим запрос на сертификат, выведем информацию о нем.
b3BlbnNzbCUyMHJlcSUyMC1pbiUyMGNzciUyRmljYS5jc3IlMjAtbm9vdXQlMjAtdGV4dCUyMC1yZXFvcHQlMjBub192ZXJzaW9uJTJDbm9fcHVia2V5JTJDbm9fc2lnZHVtcA==
Certificate Request:
Data:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3ViamVjdCUzQSUyME8lMjAlM0QlMjBBQkMlMjBMTEMlMkMlMjBDTiUyMCUzRCUyMEFCQyUyMExMQyUyMElzc3VpbmclMjBTdWJDQQ==
Attributes:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUmVxdWVzdGVkJTIwRXh0ZW5zaW9ucyUzQQ==
X509v3 Basic Constraints: critical
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwQ0ElM0FUUlVF
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwS2V5JTIwVXNhZ2UlM0ElMjBjcml0aWNhbA==
Digital Signature, Certificate Sign, CRL Sign
Создание сертификата Intermediate CA
JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUJDJUQwJUI1JUQwJUI2JUQxJTgzJUQxJTgyJUQwJUJFJUQxJTg3JUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQwJUJBJUQwJUJFJUQxJTgwJUQwJUJEJUQwJUI1JUQwJUIyJUQwJUJFJUQwJUI5JTIwJUQwJUE2JUQwJUExJTIwJUQxJTgxJTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQxJTg4JUQwJUI4JUQxJTgwJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JUQwJUJDJUMyJUEwdjNfaW50ZXJtZWRpYXRlX2NhLiUyMCVEMCU5RiVEMSU4MCVEMCVCRSVEMCVCQyVEMCVCNSVEMCVCNiVEMSU4MyVEMSU4MiVEMCVCRSVEMSU4NyVEMCVCRCVEMSU4QiVEMCVCOSUyMCVEMSU4MSVEMCVCNSVEMSU4MCVEMSU4MiVEMCVCOCVEMSU4NCVEMCVCOCVEMCVCQSVEMCVCMCVEMSU4MiUyMCVEMCVCNCVEMCVCRSVEMCVCQiVEMCVCNiVEMCVCNSVEMCVCRCUyMCVEMCVCMSVEMSU4QiVEMSU4MiVEMSU4QyUyMCVEMCVCNCVEMCVCNSVEMCVCOSVEMSU4MSVEMSU4MiVEMCVCMiVEMCVCOCVEMSU4MiVEMCVCNSVEMCVCQiVEMCVCNSVEMCVCRCUyMCVEMCVCRCVEMCVCMCUyMCVEMCVCQyVEMCVCNSVEMCVCRCVEMSU4QyVEMSU4OCVEMCVCOCVEMCVCOSUyMCVEMCVCRiVEMCVCNSVEMSU4MCVEMCVCOCVEMCVCRSVEMCVCNCUyQyUyMCVEMSU4NyVEMCVCNSVEMCVCQyUyMCVEMCVCQSVEMCVCRSVEMSU4MCVEMCVCRCVEMCVCNSVEMCVCMiVEMCVCRSVEMCVCOS4=
JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUJEJUQwJUI1JUQxJTgxJUQwJUI1JUQwJUJDJTIwJUQwJUJEJUQwJUIwJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJTIwcm9vdENBJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJUQwJUIwJTIwKGNzciklMjAlRDAlQjIlMjAlRDAlQkElRDAlQjAlRDElODIlRDAlQjAlRDAlQkIlRDAlQkUlRDAlQjMlQzIlQTAlMkZvcHQlMkZDQSUyRnJvb3RDQSUyRmNzciUyRiUyMCVEMCVCOCUyMCVEMSU4MSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCNCVEMCVCOCVEMCVCQyUyMCVEMSU4MSVEMCVCNSVEMSU4MCVEMSU4MiVEMCVCOCVEMSU4NCVEMCVCOCVEMCVCQSVEMCVCMCVEMSU4MiUyMCVEMSU4MSVEMSU4MCVEMCVCRSVEMCVCQSVEMCVCRSVEMCVCQyUyMCVEMCVCRCVEMCVCMCUyMDEwJTIwJUQwJUJCJUQwJUI1JUQxJTgyJUMyJUEwKCVEMCVCRiVEMSU4MCVEMCVCOCUyMCVEMSU4MSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCOCUyMCVEMCVCRiVEMCVCRSVEMSU4MiVEMSU4MCVEMCVCNSVEMCVCMSVEMSU4MyVEMCVCNSVEMSU4MiVEMSU4MSVEMSU4RiUyMCVEMCVCMiVEMCVCMiVEMCVCNSVEMSU4MSVEMSU4MiVEMCVCOCUyMCVEMCVCRiVEMCVCMCVEMSU4MCVEMCVCRSVEMCVCQiVEMSU4QyUyMCVEMCVCRSVEMSU4MiUyMCVEMCVCNyVEMCVCMCVEMCVCQSVEMSU4MCVEMSU4QiVEMSU4MiVEMCVCRSVEMCVCMyVEMCVCRSUyMCVEMCVCQSVEMCVCQiVEMSU4RSVEMSU4NyVEMCVCMCku
b3BlbnNzbCUyMGNhJTIwLWNvbmZpZyUyMG9wZW5zc2wtcmNhLmNuZiUyMC1leHRlbnNpb25zJTIwdjNfaW50ZXJtZWRpYXRlX2NhJTIwLWRheXMlMjAzNjUwJTIwLXJhbmRfc2VyaWFsJTIwLW5vdGV4dCUyMC1pbiUyMGNzciUyRmljYS5jc3IlMjAtb3V0JTIwY2VydHMlMkZpY2EuY3J0
Using configuration from openssl-rca.cnf
Enter pass phrase for /opt/CA/rootCA/private/rca.key:
Q2hlY2slMjB0aGF0JTIwdGhlJTIwcmVxdWVzdCUyMG1hdGNoZXMlMjB0aGUlMjBzaWduYXR1cmU=
U2lnbmF0dXJlJTIwb2s=
Q2VydGlmaWNhdGUlMjBEZXRhaWxzJTNB
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2VyaWFsJTIwTnVtYmVyJTNB
85:27:a1:dc:37:3c:46:21:be:4f:87:3e:ae:d7:55:23:0f:50:7d:de
Validity
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQmVmb3JlJTNBJTIwT2N0JTIwJTIwNSUyMDE0JTNBNDglM0ExOSUyMDIwMjMlMjBHTVQ=
Not After : Oct 2 14:48:19 2033 GMT
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3ViamVjdCUzQQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwb3JnYW5pemF0aW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMEFCQyUyMExMQw==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY29tbW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMEFCQyUyMExMQyUyMElzc3VpbmclMjBTdWJDQQ==
X509v3 extensions:
X509v3 Subject Key Identifier:
D0:6B:A1:97:0C:E3:70:6E:A1:DA:92:DB:43:55:44:B4:4B:62:D6:E1
X509v3 Authority Key Identifier:
keyid:EA:7B:AA:00:BA:EB:5C:10:05:F3:C1:16:94:8E:1F:45:5D:0B:20:16
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwS2V5JTIwVXNhZ2UlM0ElMjBjcml0aWNhbA==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRGlnaXRhbCUyMFNpZ25hdHVyZSUyQyUyMENlcnRpZmljYXRlJTIwU2lnbiUyQyUyMENSTCUyMFNpZ24=
X509v3 CRL Distribution Points:
Full Name:
URI:http://ca.example.com/rca.crl
Certificate is to be certified until Oct 2 14:48:19 2033 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
RGF0YSUyMEJhc2UlMjBVcGRhdGVk
JUQwJTlGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI4JUQwJUJDJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUJDJUQwJUI1JUQwJUI2JUQxJTgzJUQxJTgyJUQwJUJFJUQxJTg3JUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUE2JUQwJUExJTJDJTIwJUQwJUIyJUQxJThCJUQwJUIyJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJDJTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTg2JUQwJUI4JUQxJThFJTIwJUQwJUJFJTIwJUQwJUJEJUQwJUI1JUQwJUJDLg==
openssl x509 -noout -text -in certs/ica.crt -certopt no_version,no_pubkey,no_sigdump
Q2VydGlmaWNhdGUlM0E=
Data:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2VyaWFsJTIwTnVtYmVyJTNB
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwODUlM0EyNyUzQWExJTNBZGMlM0EzNyUzQTNjJTNBNDYlM0EyMSUzQWJlJTNBNGYlM0E4NyUzQTNlJTNBYWUlM0FkNyUzQTU1JTNBMjMlM0EwZiUzQTUwJTNBN2QlM0FkZQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2lnbmF0dXJlJTIwQWxnb3JpdGhtJTNBJTIwc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24=
Issuer: C = RU, O = ABC LLC, CN = ABC LLC Root Certification Authority
Validity
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQmVmb3JlJTNBJTIwT2N0JTIwJTIwNSUyMDE0JTNBNDglM0ExOSUyMDIwMjMlMjBHTVQ=
Not After : Oct 2 14:48:19 2033 GMT
Subject: O = ABC LLC, CN = ABC LLC Issuing SubCA
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwZXh0ZW5zaW9ucyUzQQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwU3ViamVjdCUyMEtleSUyMElkZW50aWZpZXIlM0E=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRDAlM0E2QiUzQUExJTNBOTclM0EwQyUzQUUzJTNBNzAlM0E2RSUzQUExJTNBREElM0E5MiUzQURCJTNBNDMlM0E1NSUzQTQ0JTNBQjQlM0E0QiUzQTYyJTNBRDYlM0FFMQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQXV0aG9yaXR5JTIwS2V5JTIwSWRlbnRpZmllciUzQQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwa2V5aWQlM0FFQSUzQTdCJTNBQUElM0EwMCUzQUJBJTNBRUIlM0E1QyUzQTEwJTNBMDUlM0FGMyUzQUMxJTNBMTYlM0E5NCUzQThFJTNBMUYlM0E0NSUzQTVEJTNBMEIlM0EyMCUzQTE2
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQmFzaWMlMjBDb25zdHJhaW50cyUzQSUyMGNyaXRpY2Fs
CA:TRUE, pathlen:0
X509v3 Key Usage: critical
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRGlnaXRhbCUyMFNpZ25hdHVyZSUyQyUyMENlcnRpZmljYXRlJTIwU2lnbiUyQyUyMENSTCUyMFNpZ24=
X509v3 CRL Distribution Points:
Full Name:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwVVJJJTNBaHR0cCUzQSUyRiUyRmNhLmV4YW1wbGUuY29tJTJGcmNhLmNybA==
JUQwJTlGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI4JUQwJUJDJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUJCJUQwJUI4JUQwJUJEJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQxJThDJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJTJDJTIwJUQwJUJBJUQwJUJFJUQxJTgwJUQwJUJEJUQwJUI1JUQwJUIyJUQxJThCJUQwJUJDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUJFJUQwJUJDLg==
b3BlbnNzbCUyMHZlcmlmeSUyMC1DQWZpbGUlMjBjZXJ0cyUyRnJjYS5jcnQlMjBjZXJ0cyUyRmljYS5jcnQ=
Y2VydHMlMkZpY2EuY3J0JTNBJTIwT0s=
JUQwJTkyJUQxJThCJUQwJUIyJUQwJUJFJUQwJUI0JTIwJUUyJTgwJTk0JTIwJUQwJTlFJUQwJTlBJTJDJTIwJUQwJUJFJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUI1JUQxJTgyJTIwJUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQxJTg2JUQwJUI1JUQwJUJGJUQwJUJFJUQxJTg3JUQwJUJBJUQwJUIwJTIwJUQwJUI0JUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI4JUQxJThGJTIwJUQwJUJEJUQwJUI1JTIwJUQwJUJGJUQwJUJFJUQwJUIyJUQxJTgwJUQwJUI1JUQwJUI2JUQwJUI0JUQwJUI1JUQwJUJEJUQwJUIwLg==
Создание файла цепочки сертификатов
Файл цепочки сертификатов необходим для проверки подлинности приложениями сертификатов, подписанными промежуточным ЦС. Приложениям необходимо проверить действительность промежуточного ЦС.
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQxJTg2JUQwJUI1JUQwJUJGJUQwJUJFJUQxJTg3JUQwJUJBJUQxJTgzJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUJFJUQwJUIyJTJDJTIwJUQxJTgxJUQwJUJFJUQwJUI0JUQwJUI1JUQxJTgwJUQwJUI2JUQwJUIwJUQxJTg5JUQxJTgzJUQxJThFJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUJDJUQwJUI1JUQwJUI2JUQxJTgzJUQxJTgyJUQwJUJFJUQxJTg3JUQwJUJEJUQxJThCJUQwJUI5JTIwJUQwJUE2JUQwJUExJTIwJUQwJUI4JTIwJUQwJUJBJUQwJUJFJUQxJTgwJUQwJUJEJUQwJUI1JUQwJUIyJUQwJUJFJUQwJUI5JTIwJUQwJUE2JUQwJUExJTJDJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJBJUQwJUI4JTIwJUQxJTg2JUQwJUI1JUQwJUJGJUQwJUJFJUQxJTg3JUQwJUJBJUQwJUI4JTIwJUQwJUI0JUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI4JUQxJThGLg==
cat certs/ica.crt certs/rca.crt > certs/ca-chain.crt
JUQwJTlGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI4JUQwJUJDJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUJCJUQwJUI4JUQwJUJEJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQxJThDJTIwJUQxJTg2JUQwJUI1JUQwJUJGJUQwJUJFJUQxJTg3JUQwJUJBJUQxJTgzJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUJFJUQwJUIyJTJDJTIwJUQwJUJBJUQwJUJFJUQxJTgwJUQwJUJEJUQwJUI1JUQwJUIyJUQxJThCJUQwJUJDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUJFJUQwJUJDLg==
b3BlbnNzbCUyMHZlcmlmeSUyMC1DQWZpbGUlMjBjZXJ0cyUyRnJjYS5jcnQlMjBjZXJ0cyUyRmNhLWNoYWluLmNydA==
Y2VydHMlMkZjYS1jaGFpbi5jcnQlM0ElMjBPSw==
Теперь созданный сертификат промежуточного ЦС и цепочки сертификатов необходимо скопировать на сервер промежуточного ЦС (intermidiateCA
) в каталог /opt/CA/intermediateCA/certs
Список отзывов (CRL)
Так же как и в случае с корневым ЦС, промежуточный должен публиковать списки отзыва сертификатов через регулярные промежутки времени или после отзыва сертификата. Создадим начальный пустой CRL промежуточного ЦС.
openssl ca -config openssl-ica.cnf -gencrl -out crl/ica.crl
JUQwJTkyJUQxJThCJUQwJUIyJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJDJTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTg2JUQwJUI4JUQxJThFJTIwJUQwJUJFJTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUI1JTIwJUQwJUJFJUQxJTgyJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwLg==
openssl crl -in crl/ica.crl -text -noout
Certificate Revocation List (CRL):
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwVmVyc2lvbiUyMDIlMjAoMHgxKQ==
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = RU, O = ABC LLC, CN = ABC LLC Issuing SubCA
Last Update: Oct 5 12:09:25 2023 GMT
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTmV4dCUyMFVwZGF0ZSUzQSUyME5vdiUyMCUyMDQlMjAxMiUzQTA5JTNBMjUlMjAyMDIzJTIwR01U
CRL extensions:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQXV0aG9yaXR5JTIwS2V5JTIwSWRlbnRpZmllciUzQQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwa2V5aWQlM0FFQSUzQTdCJTNBQUElM0EwMCUzQUJBJTNBRUIlM0E1QyUzQTEwJTNBMDUlM0FGMyUzQUMxJTNBMTYlM0E5NCUzQThFJTNBMUYlM0E0NSUzQTVEJTNBMEIlM0EyMCUzQTE2
X509v3 CRL Number:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMA==
Tm8lMjBSZXZva2VkJTIwQ2VydGlmaWNhdGVzLg==
OCSP Responder
T25saW5lJTIwQ2VydGlmaWNhdGUlMjBTdGF0dXMlMjBQcm90b2NvbCUyMChPQ1NQKSUyMCVFMiU4MCU5NCUyMCVEMCVCRiVEMCVCRSVEMCVCNyVEMCVCMiVEMCVCRSVEMCVCQiVEMSU4RiVEMCVCNSVEMSU4MiUyMCVEMCVCNyVEMCVCMCVEMCVCRiVEMSU4MCVEMCVCMCVEMSU4OCVEMCVCOCVEMCVCMiVEMCVCMCVEMSU4RSVEMSU4OSVEMCVCNSVEMCVCOSUyMCVEMSU4MSVEMSU4MiVEMCVCRSVEMSU4MCVEMCVCRSVEMCVCRCVEMCVCNSUyMCVEMCVCRSVEMCVCRiVEMSU4MCVEMCVCNSVEMCVCNCVEMCVCNSVEMCVCQiVEMSU4RiVEMSU4MiVEMSU4QyUyMCVEMSU4MSVEMSU4MiVEMCVCMCVEMSU4MiVEMSU4MyVEMSU4MSUyMCVEMCVCRSVEMSU4MiVEMCVCNyVEMSU4QiVEMCVCMiVEMCVCMCUyMCVEMSU4MSVEMCVCNSVEMSU4MCVEMSU4MiVEMCVCOCVEMSU4NCVEMCVCOCVEMCVCQSVEMCVCMCVEMSU4MiVEMCVCMCUyMCVEMCVCRCVEMCVCMCVEMCVCRiVEMSU4MCVEMSU4RiVEMCVCQyVEMSU4MyVEMSU4RSUyMCVEMCVCOCVEMCVCNyUyMCVEMSU4NCVEMCVCMCVEMCVCOSVEMCVCQiVEMCVCMCUyMGluZGV4JTIwJUQwJUI4JTIwJUQwJUIyJUQxJThCJUQwJUI0JUQwJUIwJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQxJTgwJUQwJUI1JUQwJUI3JUQxJTgzJUQwJUJCJUQxJThDJUQxJTgyJUQwJUIwJUQxJTgyLg==
Создаем закрытый ключ RSA без пароля для OCSP.
openssl genrsa -out private/ocsp.example.com.key 4096
Создаем запрос на создание сертификата (CSR) для OCSP.
openssl req -config openssl-ica.cnf -new -sha256 -key private/ocsp.example.com.key -out csr/ocsp.example.com.csr
You are about to be asked to enter information that will be incorporated
aW50byUyMHlvdXIlMjBjZXJ0aWZpY2F0ZSUyMHJlcXVlc3Qu
V2hhdCUyMHlvdSUyMGFyZSUyMGFib3V0JTIwdG8lMjBlbnRlciUyMGlzJTIwd2hhdCUyMGlzJTIwY2FsbGVkJTIwYSUyMERpc3Rpbmd1aXNoZWQlMjBOYW1lJTIwb3IlMjBhJTIwRE4u
There are quite a few fields but you can leave some blank
Rm9yJTIwc29tZSUyMGZpZWxkcyUyMHRoZXJlJTIwd2lsbCUyMGJlJTIwYSUyMGRlZmF1bHQlMjB2YWx1ZSUyQw==
SWYlMjB5b3UlMjBlbnRlciUyMCcuJyUyQyUyMHRoZSUyMGZpZWxkJTIwd2lsbCUyMGJlJTIwbGVmdCUyMGJsYW5rLg==
LS0tLS0=
Q291bnRyeSUyME5hbWUlMjAoMiUyMGxldHRlciUyMGNvZGUpJTIwJTVCJTVEJTNB
U3RhdGUlMjBvciUyMFByb3ZpbmNlJTIwTmFtZSUyMChmdWxsJTIwbmFtZSklMjAlNUIlNUQlM0E=
Locality Name (eg, city) []:
T3JnYW5pemF0aW9uJTIwTmFtZSUyMChlZyUyQyUyMGNvbXBhbnkpJTIwJTVCJTVEJTNBQUJDJTIwTExD
Organizational Unit Name (eg, section) []:
Q29tbW9uJTIwTmFtZSUyMChlZyUyQyUyMHlvdXIlMjBuYW1lJTIwb3IlMjB5b3VyJTIwc2VydmVyJTIwaG9zdG5hbWUpJTIwJTVCJTVEJTNBb2NzcC5leGFtcGxlLmNvbQ==
Email Address []:
Важный момент — Common Name
должен быть полным доменным именем, пример ocsp.example.com
. Доменное имя должно ссылаться на сервер с OCSP ответчиком. В нашем случае OCSP ответчик располагается на сервере промежуточного ЦС (intermidiateCA
).
JUQwJTlGJUQwJUJFJUQwJUI0JUQwJUJGJUQwJUI4JUQxJTgxJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwQ1NSJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUJDJUQwJUI1JUQwJUI2JUQxJTgzJUQxJTgyJUQwJUJFJUQxJTg3JUQwJUJEJUQxJThCJUQwJUJDJTIwJUQwJUE2JUQwJUExLg==
b3BlbnNzbCUyMGNhJTIwLWNvbmZpZyUyMG9wZW5zc2wtaWNhLmNuZiUyMC1leHRlbnNpb25zJTIwb2NzcCUyMC1kYXlzJTIwMzc1JTIwLXJhbmRfc2VyaWFsJTIwLW5vdGV4dCUyMC1pbiUyMGNzciUyRm9jc3AuZXhhbXBsZS5jb20uY3NyJTIwLW91dCUyMGNlcnRzJTJGb2NzcC5leGFtcGxlLmNvbS5jcnQ=
VXNpbmclMjBjb25maWd1cmF0aW9uJTIwZnJvbSUyMG9wZW5zc2wtaWNhLmNuZg==
RW50ZXIlMjBwYXNzJTIwcGhyYXNlJTIwZm9yJTIwJTJGb3B0JTJGQ0ElMkZpbnRlcm1lZGlhdGVDQSUyRnByaXZhdGUlMkZpY2Eua2V5JTNB
Q2hlY2slMjB0aGF0JTIwdGhlJTIwcmVxdWVzdCUyMG1hdGNoZXMlMjB0aGUlMjBzaWduYXR1cmU=
Signature ok
Certificate Details:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2VyaWFsJTIwTnVtYmVyJTNB
31:c8:85:67:3c:af:57:bb:cb:a2:6b:3f:b3:64:95:36:e4:90:93:6b
Validity
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQmVmb3JlJTNBJTIwT2N0JTIwJTIwNSUyMDIwJTNBMDMlM0EwMSUyMDIwMjMlMjBHTVQ=
Not After : Oct 14 20:03:01 2024 GMT
Subject:
organizationName = ABC LLC
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY29tbW9uTmFtZSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMG9jc3AuZXhhbXBsZS5jb20=
X509v3 extensions:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQmFzaWMlMjBDb25zdHJhaW50cyUzQQ==
CA:FALSE
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwU3ViamVjdCUyMEtleSUyMElkZW50aWZpZXIlM0E=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMTElM0FCOCUzQUI1JTNBRjMlM0E4MCUzQTUwJTNBN0MlM0E1QSUzQTdBJTNBNUUlM0E3RiUzQTYxJTNBNTIlM0E5RSUzQUJBJTNBNDIlM0FEQSUzQTE0JTNBMjMlM0E2OQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQXV0aG9yaXR5JTIwS2V5JTIwSWRlbnRpZmllciUzQQ==
keyid:D0:6B:A1:97:0C:E3:70:6E:A1:DA:92:DB:43:55:44:B4:4B:62:D6:E1
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwS2V5JTIwVXNhZ2UlM0ElMjBjcml0aWNhbA==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRGlnaXRhbCUyMFNpZ25hdHVyZQ==
X509v3 Extended Key Usage: critical
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwT0NTUCUyMFNpZ25pbmc=
Q2VydGlmaWNhdGUlMjBpcyUyMHRvJTIwYmUlMjBjZXJ0aWZpZWQlMjB1bnRpbCUyME9jdCUyMDE0JTIwMjAlM0EwMyUzQTAxJTIwMjAyNCUyMEdNVCUyMCgzNzUlMjBkYXlzKQ==
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
V3JpdGUlMjBvdXQlMjBkYXRhYmFzZSUyMHdpdGglMjAxJTIwbmV3JTIwZW50cmllcw==
RGF0YSUyMEJhc2UlMjBVcGRhdGVk
JUQwJTkyJTIwJUQwJUJBJUQwJUIwJUQxJTg3JUQwJUI1JUQxJTgxJUQxJTgyJUQwJUIyJUQwJUI1JTIwT0NTUCUyMCVEMCVCRSVEMSU4MiVEMCVCMiVEMCVCNSVEMSU4MiVEMSU4NyVEMCVCOCVEMCVCQSVEMCVCMCUyMCVEMCVCMSVEMSU4MyVEMCVCNCVEMCVCNSVEMCVCQyUyMCVEMCVCOCVEMSU4MSVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMSU4QyVDMiVBMG9wZW5zc2wlMjBvY3NwJTJDJTIwJUQwJUJFJUQwJUJEJTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQxJTgyJTIwJUQwJUIyJUQxJThCJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUIyJTIwJUQxJTgwJUQwJUJFJUQwJUJCJUQwJUI4JTIwJUQwJUJDJUQwJUI4JUQwJUJEJUQwJUI4LSVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCMCUyME9DU1AuJTIwJUQwJTk3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQxJTgyJUQxJThDJTIwb3BlbnNzbCUyMG9jc3AlMjAlRDAlQkUlRDElODIlRDAlQjIlRDAlQjUlRDElODIlRDElODclRDAlQjglRDAlQkElMjAlRDAlQjElRDElODMlRDAlQjQlRDAlQjUlRDAlQkMlMjAlRDAlQkElRDAlQjAlRDAlQkElMjAlRDElODElRDAlQjUlRDElODAlRDAlQjIlRDAlQjglRDElODElMkMlMjAlRDElODElRDAlQkUlRDAlQjclRDAlQjQlRDAlQjAlRDAlQjUlRDAlQkMlMjAlRDElODElRDAlQjUlRDElODAlRDAlQjIlRDAlQjglRDElODElM0E=
cat << EOF > /etc/systemd/system/openssl-ocsp.service
[Unit]
Description=OpenSSL OCSP Responder Server
After=syslog.target network.target
JTVCU2VydmljZSU1RA==
VHlwZSUzRGlkbGU=
RXhlY1N0YXJ0JTNEJTJGdXNyJTJGYmluJTJGb3BlbnNzbCUyMG9jc3AlMjAtaW5kZXglMjAlMkZvcHQlMkZDQSUyRmludGVybWVkaWF0ZUNBJTJGaW5kZXglMjAtcG9ydCUyMDgwJTIwLXJzaWduZXIlMjAlMkZvcHQlMkZDQSUyRmludGVybWVkaWF0ZUNBJTJGY2VydHMlMkZvY3NwLmV4YW1wbGUuY29tLmNydCUyMC1ya2V5JTIwJTJGb3B0JTJGQ0ElMkZpbnRlcm1lZGlhdGVDQSUyRnByaXZhdGUlMkZvY3NwLmV4YW1wbGUuY29tLmtleSUyMC1DQSUyMCUyRm9wdCUyRkNBJTJGaW50ZXJtZWRpYXRlQ0ElMkZjZXJ0cyUyRmNhLWNoYWluLmNydCUyMC1pZ25vcmVfZXJyJTIwLXRleHQlMjAtdGltZW91dCUyMDU=
S2lsbE1vZGUlM0Rwcm9jZXNz
UmVzdGFydCUzRG9uLWZhaWx1cmU=
[Install]
WantedBy=multiuser.target
EOF
JUQwJTlGJUQwJUJFJUQxJThGJUQxJTgxJUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUJGJUQwJUJFJTIwJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUIwJUQwJUJDJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJTIwb3BlbnNzbCUyMG9jc3Au
-ignore_err | Игнорировать неправильно сформированные запросы или ответы. Действуя в качестве ответчика OCSP, продолжается выполнение вместо завершения при получении неправильно сформированного запроса. |
-timeout | Время ожидания подключения к ответчику OCSP в секундах. В системах POSIX при запуске в качестве ответчика OCSP этот параметр также ограничивает время, в течение которого ответчик готов ожидать запроса клиента. Это время измеряется с момента, когда ответчик принимает соединение, до получения полного запроса. |
JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUI2JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI0JUQwJUI1JUQwJUJDJUQwJUJFJUQwJUJEJTIwc3lzdGVtZCUyMCVEMCVCOCUyMCVEMCVCNyVEMCVCMCVEMCVCRiVEMSU4MyVEMSU4MSVEMCVCQSVEMCVCMCVEMCVCNSVEMCVCQyUyMCVEMSU4MSVEMCVCQiVEMSU4MyVEMCVCNiVEMCVCMSVEMSU4MyVDMiVBMG9wZW5zc2wtb2NzcC4=
systemctl daemon-reload
service openssl-ocsp start
c2VydmljZSUyMG9wZW5zc2wtb2NzcCUyMHN0YXR1cw==
● openssl-ocsp.service - OpenSSL OCSP Responder Server
JTIwJTIwJTIwJTIwJTIwTG9hZGVkJTNBJTIwbG9hZGVkJTIwKCUyRmV0YyUyRnN5c3RlbWQlMkZzeXN0ZW0lMkZvcGVuc3NsLW9jc3Auc2VydmljZSUzQiUyMGRpc2FibGVkJTNCJTIwdmVuZG9yJTIwcHJlc2V0JTNBJTIwZW5hYmxlZCk=
JTIwJTIwJTIwJTIwJTIwQWN0aXZlJTNBJTIwYWN0aXZlJTIwKHJ1bm5pbmcpJTIwc2luY2UlMjBUdWUlMjAyMDIzLTEwLTAzJTIwMTMlM0E0NSUzQTE0JTIwTVNLJTNCJTIwNHMlMjBhZ28=
JTIwJTIwJTIwTWFpbiUyMFBJRCUzQSUyMDE0MTAzJTIwKG9wZW5zc2wp
Tasks: 1 (limit: 1115)
Memory: 692.0K
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwQ1BVJTNBJTIwNG1z
JTIwJTIwJTIwJTIwJTIwQ0dyb3VwJTNBJTIwJTJGc3lzdGVtLnNsaWNlJTJGb3BlbnNzbC1vY3NwLnNlcnZpY2U=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwMTQxMDMlMjAlMkZ1c3IlMkZiaW4lMkZvcGVuc3NsJUMyJUEwb2NzcCVDMiVBMC1pbmRleCVDMiVBMCUyRm9wdCUyRkNBJTJGaW50ZXJtZWRpYXRlQ0ElMkZpbmRleCVDMiVBMC1wb3J0JUMyJUEwODAlQzIlQTAtcnNpZ25lciVDMiVBMCUyRm9wdCUyRkNBJTJGaW50ZXJtZWRpYXRlQ0ElMkZjZXJ0cyUyRm9jc3AuZXhhbXBsZS5jb20uY3J0JUMyJUEwLXJrZXklQzIlQTAlMkZvcHQlMkZDQSUyRmludGVybWVkaWF0ZUNBJTJGcHJpdmF0ZSUyRm9jc3AuZXhhbXBsZS5jb20ua2V5JUMyJUEwLUNBJUMyJUEwJTJGb3B0JTJGQ0ElMkZpbnRlcm1lZGlhdGVDQSUyRmNlcnRzJTJGY2EtY2hhaW4uY3J0JUMyJUEwLWlnbm9yZV9lcnIlQzIlQTAtdGV4dCVDMiVBMC1ubWluJUMyJUEwMzAwJUMyJUEwLXRpbWVvdXQlQzIlQTA1
Oct 03 13:45:14 intermediateCA systemd[1]: Started OpenSSL OCSP Responder Server.
T2N0JTIwMDMlMjAxMyUzQTQ1JTNBMTQlMjBpbnRlcm1lZGlhdGVDQSUyMG9wZW5zc2wlNUIxNDEwMyU1RCUzQSUyMG9jc3AlM0ElMjB3YWl0aW5nJTIwZm9yJTIwT0NTUCUyMGNsaWVudCUyMGNvbm5lY3Rpb25zLi4u
Если пути к сертификатам были указаны верно, то служба успешно будет запущена и готова для приема ocsp запросов.
Для проверки выполним запрос к OCSP ответчику на проверку сертификата ocsp.example.com.crt
.
openssl ocsp -CAfile /opt/CA/intermediateCA/certs/ca-chain.crt -url http://127.0.0.1:80 -resp_text -issuer /opt/CA/intermediateCA/certs/ica.crt -cert /opt/CA/intermediateCA/certs/ocsp.example.com.crt
Вывод.
T0NTUCUyMFJlc3BvbnNlJTIwRGF0YSUzQQ==
JTIwJTIwJTIwJTIwT0NTUCUyMFJlc3BvbnNlJTIwU3RhdHVzJTNBJTIwc3VjY2Vzc2Z1bCUyMCgweDAp
Response Type: Basic OCSP Response
Version: 1 (0x0)
Responder Id: O = ABC LLC, CN = ocsp.example.com
JTIwJTIwJTIwJTIwUHJvZHVjZWQlMjBBdCUzQSUyME9jdCUyMCUyMDYlMjAwNiUzQTA1JTNBNTYlMjAyMDIzJTIwR01U
Responses:
Certificate ID:
Hash Algorithm: sha1
Issuer Name Hash: 3097E0D914833E4857E835DE2484D0CE537AEC3D
JTIwJTIwJTIwJTIwJTIwJTIwSXNzdWVyJTIwS2V5JTIwSGFzaCUzQSUyMEQwNkJBMTk3MENFMzcwNkVBMURBOTJEQjQzNTU0NEI0NEI2MkQ2RTE=
JTIwJTIwJTIwJTIwJTIwJTIwU2VyaWFsJTIwTnVtYmVyJTNBJTIwMzFDODg1NjczQ0FGNTdCQkNCQTI2QjNGQjM2NDk1MzZFNDkwOTM2Qg==
JTIwJTIwJTIwJTIwQ2VydCUyMFN0YXR1cyUzQSUyMGdvb2Q=
JTIwJTIwJTIwJTIwVGhpcyUyMFVwZGF0ZSUzQSUyME9jdCUyMCUyMDYlMjAwNiUzQTA1JTNBNTYlMjAyMDIzJTIwR01U
Response Extensions:
OCSP Nonce:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMDQxMDQwMEEyOUY5NUI3RDgxRUZGMjg5QUFBRjdGMjIzMTVF
Signature Algorithm: sha256WithRSAEncryption
Q2VydGlmaWNhdGUlM0E=
JTIwJTIwJTIwJTIwRGF0YSUzQQ==
Version: 3 (0x2)
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2VyaWFsJTIwTnVtYmVyJTNB
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMzElM0FjOCUzQTg1JTNBNjclM0EzYyUzQWFmJTNBNTclM0FiYiUzQWNiJTNBYTIlM0E2YiUzQTNmJTNBYjMlM0E2NCUzQTk1JTNBMzYlM0FlNCUzQTkwJTNBOTMlM0E2Yg==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2lnbmF0dXJlJTIwQWxnb3JpdGhtJTNBJTIwc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwSXNzdWVyJTNBJTIwTyUzREFCQyUyMExMQyUyQyUyMENOJTNEQUJDJTIwTExDJTIwSXNzdWluZyUyMFN1YkNB
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwVmFsaWRpdHk=
Not Before: Oct 5 20:03:01 2023 GMT
Not After : Oct 14 20:03:01 2024 GMT
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU3ViamVjdCUzQSUyME8lM0RBQkMlMjBMTEMlMkMlMjBDTiUzRG9jc3AuZXhhbXBsZS5jb20=
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUlNBJTIwUHVibGljLUtleSUzQSUyMCg0MDk2JTIwYml0KQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTW9kdWx1cyUzQQ==
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwU3ViamVjdCUyMEtleSUyMElkZW50aWZpZXIlM0E=
11:B8:B5:F3:80:50:7C:5A:7A:5E:7F:61:52:9E:BA:42:DA:14:23:69
X509v3 Authority Key Identifier:
keyid:D0:6B:A1:97:0C:E3:70:6E:A1:DA:92:DB:43:55:44:B4:4B:62:D6:E1
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwS2V5JTIwVXNhZ2UlM0ElMjBjcml0aWNhbA==
Digital Signature
X509v3 Extended Key Usage: critical
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwT0NTUCUyMFNpZ25pbmc=
Signature Algorithm: sha256WithRSAEncryption
Response verify OK
JTJGb3B0JTJGQ0ElMkZpbnRlcm1lZGlhdGVDQSUyRmNlcnRzJTJGb2NzcC5leGFtcGxlLmNvbS5jcnQlM0ElMjBnb29k
This Update: Oct 6 06:05:56 2023 GMT
Для того чтобы закодировать расположение сервера OCSP в сертификат, который подписывает промежуточный ЦС. Необходимо использовать опцию authorityInfoAccess
в соответствующей секции (в описании расширения сертификата).
JTVCJTIwcmVxX2V4dCUyMCU1RA==
authorityInfoAccess = OCSP;URI:http://ocsp.example.com
CA Website
JUQwJTlGJUQwJUJFJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUJCJUQxJThDJUQwJUJBJUQxJTgzJTIwJUQwJUJEJUQwJUIwJUQwJUJDJTIwJUQwJUJEJUQxJTgzJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUJDJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUJFJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUJEJUQwJUIwJUQxJTg4JUQwJUI4JUQxJTg1JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUJFJUQwJUIyJTIwJUQwJUI4JTIwJUQwJUJGJUQxJTgzJUQwJUIxJUQwJUJCJUQwJUI4JUQwJUJBJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQwJUJFJUQwJUIxJTIwJUQwJUJFJUQxJTgyJUQwJUI3JUQxJThCJUQwJUIyJUQwJUI1JTJDJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQwJUIyJUQwJUI1JUQwJUIxLSVEMSU4MSVEMCVCMCVEMCVCOSVEMSU4Mi4lMjAlRDAlOTIlRDAlQjUlRDAlQjEtJUQxJTgxJUQwJUIwJUQwJUI5JUQxJTgyJTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQwJUJDJTIwJUQxJTgwJUQwJUIwJUQwJUI3JUQwJUJDJUQwJUI1JUQxJTg5JUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUJFJUQxJTgyJUQwJUI0JUQwJUI1JUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQwJUJDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI1JTIwKHdlYkNBKS4=
Устанавливаем apache.
YXB0LWdldCUyMGluc3RhbGwlMjBhcGFjaGUyJTIwLXk=
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQwJUIyJUQwJUI4JUQxJTgwJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTg1JUQwJUJFJUQxJTgxJUQxJTgyJTIwKCUyRmV0YyUyRmFwYWNoZTIlMkZzaXRlcy1hdmFpbGFibGUlMkYwMDEtY2EuY29uZiklMjAlRDAlQjQlRDAlQkIlRDElOEYlMjBDQSUyQyUyMCVEMSU4MSVEMCVCRSUyMCVEMSU4MSVEMCVCQiVEMCVCNSVEMCVCNCVEMSU4MyVEMSU4RSVEMSU4OSVEMCVCOCVEMCVCQyUyMCVEMSU4MSVEMCVCRSVEMCVCNCVEMCVCNSVEMSU4MCVEMCVCNiVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCNSVEMCVCQy4=
<VirtualHost *:80>
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2VydmVyTmFtZSUyMGNhLmV4YW1wbGUuY29t
DocumentRoot /var/www/ca
<Directory /var/www/ca>
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwT3B0aW9ucyUyMEluZGV4ZXMlMjBGb2xsb3dTeW1MaW5rcw==
AllowOverride None
Require all granted
</Directory>
JTNDJTJGVmlydHVhbEhvc3QlM0U=
ServerName
указываем имя сервера которое задавали в конфигурационных файлах rootCA
и intermidiateCA
(openssl-rca.cnf
, openssl-ica.cnf
).Создадим необходимый каталог для размещения сертификатов, списков отзывов на веб-сайте и применим к права доступа для веб-сервера.
bWtkaXIlMjAtcCUyMCUyRnZhciUyRnd3dyUyRmNh
chown www-data:www-data /var/www/ca
JUQwJTkyJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUIyJUQwJUI1JUQwJUIxLSVEMSU4MSVEMCVCMCVEMCVCOSVEMSU4MiUyMCVEMCVCOCVDMiVBMCVEMCVCRiVEMCVCNSVEMSU4MCVEMCVCNSVEMSU4NyVEMCVCOCVEMSU4MiVEMCVCMCVEMSU4MiVEMSU4QyUyMCVEMCVCQSVEMCVCRSVEMCVCRCVEMSU4NCVEMCVCOCVEMCVCMyVEMSU4MyVEMSU4MCVEMCVCMCVEMSU4NiVEMCVCOCVEMSU4RSUyMGFwYWNoZS4=
a2ensite 001-ca.conf
c3lzdGVtY3RsJTIwcmVsb2FkJTIwYXBhY2hlMg==
JUQwJTlCJUQxJThFJUQwJUIxJUQxJThCJUQwJUJDJTIwJUQxJTgzJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUJEJUQxJThCJUQwJUJDJTIwJUQxJTgxJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJFJUQwJUIxJUQwJUJFJUQwJUJDJTIwJUQwJUJBJUQwJUJFJUQwJUJGJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQxJThCJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUJFJUQwJUIyJTJDJTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUJFJUQwJUIyJTIwJUQwJUJFJUQxJTgyJUQwJUI3JUQxJThCJUQwJUIyJUQwJUJFJUQwJUIyJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUIyJUQwJUI1JUQwJUIxLSVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCNSVEMSU4MCUyMCVEMCVCMiUyMCVEMCVCQSVEMCVCMCVEMSU4MiVEMCVCMCVEMCVCQiVEMCVCRSVEMCVCMyUyMCVEMSU4MSVEMCVCMCVEMCVCOSVEMSU4MiVEMCVCMCUyMCglMkZ2YXIlMkZ3d3clMkZjYSklMkMlMjAlRDElODclRDElODIlRDAlQkUlRDAlQjElRDElOEIlMjAlRDAlQkYlRDAlQkUlRDAlQkIlRDElODMlRDElODclRDAlQjglRDAlQkIlRDAlQkUlRDElODElRDElOEMlMjAlRDElODIlRDAlQjAlRDAlQkEu
/var/www/ca/
JUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwY2EtY2hhaW4uY3J0
JUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwaWNhLmNybA==
JUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwaWNhLmNydA==
JUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwcmNhLmNybA==
└── rca.crt
Теперь если перейти в браузере на опубликованный сайт — ca.example.com
, увидим доступные файлы сертификатов корневого, промежуточного ЦС, их списки отзыва и цепочка сертификатов.

Добавление сертификатов в Active Directory
JUQwJTkyJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JTIwJUQwJUI1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUI0JUQwJUJFJUQwJUJDJUQwJUI1JUQwJUJEJUQwJUJEJUQwJUIwJUQxJThGJTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQxJTgwJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJBJUQxJTgyJUQxJTgzJUQxJTgwJUQwJUIwJTIwV2luZG93cyUyQyUyMCVEMSU4MiVEMCVCRSUyMCVEMCVCOCVEMCVCQyVEMCVCNSVEMCVCNSVEMSU4MiUyMCVEMSU4MSVEMCVCQyVEMSU4QiVEMSU4MSVEMCVCQiUyMCVEMCVCRiVEMSU4MyVEMCVCMSVEMCVCQiVEMCVCOCVEMCVCQSVEMCVCMCVEMSU4NiVEMCVCOCVEMCVCOCUyMCVEMSU4MSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCRCVEMSU4QiVEMSU4NSUyMCVEMCVCMiVEMSU4QiVEMSU4OCVEMCVCNSUyMCVEMCVBNiVEMCVBMSUyMCVEMCVCMiUyMCVEMSU4NSVEMSU4MCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCQiVEMCVCOCVEMSU4OSVEMCVCNSUyMEVudGVycHJpc2UlMjBOVEF1dGguJTIwJUQwJTk0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUJFJUQwJUIyJTIwJUQxJTgxJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUJFJUQwJUJEJUQwJUJEJUQwJUI4JUQxJTg1JTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUI4JUQwJUI3JUQwJUIyJUQwJUJFJUQwJUI0JUQwJUI4JUQxJTgyJUQwJUI1JUQwJUJCJUQwJUI1JUQwJUI5JTIwJUQwJUIyJTIwJUQxJTg1JUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUJCJUQwJUI4JUQxJTg5JUQwJUI1JTIwTlRBdXRoJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQxJTgyJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI2JUQwJUI0JUQwJUIwJUQwJUI1JUQxJTgyJTJDJTIwJUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQwJUE2JUQwJUExJTIwJUQwJUI0JUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUJEJUQwJUJFJTIwJUQwJUIyJUQxJThCJUQwJUI0JUQwJUIwJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQxJThCJTIwJUQwJUJBJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUJDJUQwJUI1JUQxJTgwJUQxJTgzJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUIyJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUIwJUMyJUEwJUQwJUIyJTIwJUQxJTgxJUQwJUI4JUQxJTgxJUQxJTgyJUQwJUI1JUQwJUJDJUQxJTgzJTIwJUQxJTgxJTIwJUQwJUJGJUQwJUJFJUQwJUJDJUQwJUJFJUQxJTg5JUQxJThDJUQxJThFJTIwJUQxJTgxJUQwJUJDJUQwJUIwJUQxJTgwJUQxJTgyLSVEMCVCQSVEMCVCMCVEMSU4MCVEMSU4Mi4=
Для публикации сертификатов ЦС в хранилище Enterprise NTAuth
, скопируем сертификаты корневого и промежуточного ЦС на домен контроллер и выполняем команды от имени администратора.
certutil -dspublish -f rca.cer NTAuthCA
certutil -dspublish -f ica.cer NTAuthCA
JUQwJUExJUQwJUJFJUQwJUI0JUQwJUI1JUQxJTgwJUQwJUI2JUQwJUI4JUQwJUJDJUQwJUJFJUQwJUI1JTIwJUQxJTg1JUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUJCJUQwJUI4JUQxJTg5JUQwJUIwJTIwTlRBdXRoJTIwJUQwJUJBJUQxJThEJUQxJTg4JUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUIyJTIwJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQxJTgzJUQxJThFJUQxJTg5JUQwJUI1JUQwJUJDJTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJFJUQwJUI2JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI4JTIwJUQxJTgwJUQwJUI1JUQwJUI1JUQxJTgxJUQxJTgyJUQxJTgwJUQwJUIwLg==
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EnterpriseCertificates\NTAuth\Certificates
Этот раздел реестра должен быть автоматически обновлен с учетом сертификатов, опубликованных в хранилище NTAuth в контейнере конфигурации Active Directory. В некоторых сценариях, таких как задержка репликации Active Directory или если автоматически включен параметр политики «Не регистрировать сертификаты», реестр не обновляется. В таких случаях необходиом выполнить добавление сертификатов вручную, чтобы вставить сертификат в расположение реестра, выполняем команды от имени администратора
certutil -enterprise -addstore NTAuth rca.cer
Y2VydHV0aWwlMjAtZW50ZXJwcmlzZSUyMC1hZGRzdG9yZSUyME5UQXV0aCUyMGljYS5jZXI=
Выпуск серверного сертификата
Для примера рассмотрим как выпустить серверный сертификат для выше описанного веб-сервера — ca.example.com
.
JUQwJUFGJTIwJUQxJTgwJUQwJUI1JUQwJUJBJUQwJUJFJUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI0JUQxJTgzJUQxJThFJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUJFJUQxJTgyJUQwJUI0JUQwJUI1JUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQxJThCJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQxJTgxJTIwJUQwJUJFJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JUQwJUJDJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQwJUI1JUQwJUJDJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwLiUyMCVEMCVBMSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCNCVEMCVCOCVEMCVCQyUyMCVEMSU4NCVEMCVCMCVEMCVCOSVEMCVCQiUyMCVEMCVCQSVEMCVCRSVEMCVCRCVEMSU4NCVEMCVCOCVEMCVCMyVEMSU4MyVEMSU4MCVEMCVCMCVEMSU4NiVEMCVCOCVEMCVCOCUyMCglMkZvcHQlMkZDQSUyRmludGVybWVkaWF0ZUNBJTJGc2VydmVyLmNuZiklMjAlRDElODElMjAlRDElODElRDAlQkUlRDAlQjQlRDAlQjUlRDElODAlRDAlQjYlRDAlQjglRDAlQkMlRDElOEIlRDAlQkMu
[ req ]
ZGVmYXVsdF9iaXRzJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNEJTIwMjA0OA==
ZGVmYXVsdF9tZCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzRCUyMHNoYTI1Ng==
c3RyaW5nX21hc2slMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjB1dGY4b25seQ==
eDUwOV9leHRlbnNpb25zJTIwJTIwJTIwJTIwJTIwJTNEJTIwcmVxX2V4dA==
ZGlzdGluZ3Vpc2hlZF9uYW1lJTIwJTIwJTNEJTIwcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZQ==
cHJvbXB0JUMyJUEwJTNEJUMyJUEwbm8=
JTVCJTIwcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZSUyMCU1RA==
QyUyMCUyMCUyMCUzRCUyMFJV
O = ABC LLC
Q04lMjAlMjAlM0QlMjBjYS5leGFtcGxlLmNvbQ==
JTIzJTIwQ29tbW9uJTIwcGFyYW1ldHM=
JTIzJTIwQyUyMCUyMCUyMCUzRCUyMENvdW50cnklMjBOYW1lJTIwKDIlMjBsZXR0ZXIlMjBjb2RlKSUyMC0lMjBBRQ==
# ST = State or Province Name (full name) - Emirate of Dubai
JTIzJTIwTCUyMCUyMCUyMCUzRCUyMExvY2FsaXR5JTIwTmFtZSUyMChlZyUyQyUyMGNpdHkpJTIwLSUyMER1YmFp
JTIzJTIwTyUyMCUyMCUyMCUzRCUyME9yZ2FuaXphdGlvbiUyME5hbWUlMjAtJTIwTk9SRCUyMFJJTQ==
# OU = Organizational Unit Name (eg, section) - IT
JTIzJTIwQ04lMjAlMjAlM0QlMjBDb21tb24lMjBOYW1lJTIwKGVnJTJDJTIweW91ciUyMG5hbWUlMjBvciUyMHlvdXIlMjBzZXJ2ZXIlNUMncyUyMGhvc3RuYW1lKQ==
JTVCJTIwcmVxX2V4dCUyMCU1RA==
basicConstraints = CA:FALSE
c3ViamVjdEtleUlkZW50aWZpZXIlMjAlMjAlMjAlMjAlM0QlMjBoYXNo
YXV0aG9yaXR5S2V5SWRlbnRpZmllciUyMCUyMCUzRCUyMGtleWlkJTJDaXNzdWVy
authorityInfoAccess = caIssuers;URI:http://ca.example.com/ca_chain.crt,OCSP;URI:http://ocsp.example.com
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
c3ViamVjdEFsdE5hbWUlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0QlMjAlNDBhbHRfbmFtZXM=
crlDistributionPoints = crldp1_section
[ crldp1_section ]
fullname = URI:http://ca.example.com/ica.crl
JTVCYWx0X25hbWVzJTVE
RE5TLjElMjAlM0QlMjBjYS5leGFtcGxlLmNvbQ==
IP.1 = 192.168.1.2
JUQwJTlGJUQwJUJFJUQxJThGJUQxJTgxJUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUJGJUQwJUJFJTIwJUQwJUJFJUQxJTgyJUQwJUJDJUQwJUI1JUQxJTg3JUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQwJUJDJTIwJUQwJUJGJUQxJTgzJUQwJUJEJUQwJUJBJUQxJTgyJUQwJUIwJUQwJUJDLg==
prompt | Данный параметр подавляет запросы при создании CSR сертификата и все параметры сертификата будут браться из указанного файла конфигурации. |
[ req_distinguished_name ] | Преопределяем distinguished name Сертификата |
[ req_ext ] subjectAltName = @alt_names | Данный параметр указывает что в сертификате будут присутствовать SAN (Subject Alternative Names) означает «Альтернативные имена субъектов» и ссылается на секцию в которой будут описаны все SAN. |
[alt_names] | В этой секции описываем все необходимые SAN. Пример. DNS.1 = ca.example.com DNS.2 = ca2.example.com IP.1 = 192.168.1.2 IP.2 = 192.168.1.3 и т.д. |
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI3JUQwJUIwJUQwJUJBJUQxJTgwJUQxJThCJUQxJTgyJUQxJThCJUQwJUI5JTIwJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JTIwUlNBJTIwJUQwJUIxJUQwJUI1JUQwJUI3JTIwJUQwJUJGJUQwJUIwJUQxJTgwJUQwJUJFJUQwJUJCJUQxJThGJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQxJTgzJUQxJTg5JUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwLg==
openssl genrsa -out private/ca.example.com.key 4096
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJTIwJUQwJUJEJUQwJUIwJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJTIwKENTUiku
openssl req -new -key private/ca.example.com.key -out csr/ca.example.com.csr -sha256 -config server.cnf -extensions req_ext
JUQwJTlGJUQwJUJFJUQwJUI0JUQwJUJGJUQwJUI4JUQxJTgxJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwQ1NSJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUJDJUQwJUI1JUQwJUI2JUQxJTgzJUQxJTgyJUQwJUJFJUQxJTg3JUQwJUJEJUQxJThCJUQwJUJDJTIwJUQwJUE2JUQwJUExJTNB
openssl ca -batch -config openssl-ica.cnf -extfile server.cnf -extensions req_ext -days 3650 -rand_serial -notext -in csr/ca.example.com.csr -out certs/ca.example.com.crt
Проверим сертификат, выведем информацию о нем.
openssl x509 -noout -text -in certs/ca.example.com.crt -certopt no_version,no_pubkey,no_sigdump
Certificate:
Data:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2VyaWFsJTIwTnVtYmVyJTNB
34:f0:89:8a:d7:9a:46:de:f9:5e:ea:10:fe:65:1f:fc:6c:8b:20:40
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2lnbmF0dXJlJTIwQWxnb3JpdGhtJTNBJTIwc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwSXNzdWVyJTNBJTIwTyUyMCUzRCUyMEFCQyUyMExMQyUyQyUyMENOJTIwJTNEJTIwQUJDJTIwTExDJTIwSXNzdWluZyUyMFN1YkNB
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwVmFsaWRpdHk=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQmVmb3JlJTNBJTIwT2N0JTIwJTIwNiUyMDA4JTNBNTUlM0EzNiUyMDIwMjMlMjBHTVQ=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQWZ0ZXIlMjAlM0ElMjBPY3QlMjAlMjAzJTIwMDglM0E1NSUzQTM2JTIwMjAzMyUyMEdNVA==
Subject: C = RU, O = ABC LLC, CN = ca.example.com
X509v3 extensions:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQmFzaWMlMjBDb25zdHJhaW50cyUzQQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwQ0ElM0FGQUxTRQ==
X509v3 Subject Key Identifier:
20:C9:AD:A2:1F:DE:3E:4F:A1:43:60:92:8D:AA:55:42:CB:63:89:E7
X509v3 Authority Key Identifier:
keyid:D0:6B:A1:97:0C:E3:70:6E:A1:DA:92:DB:43:55:44:B4:4B:62:D6:E1
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwQXV0aG9yaXR5JTIwSW5mb3JtYXRpb24lMjBBY2Nlc3MlM0E=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwQ0ElMjBJc3N1ZXJzJTIwLSUyMFVSSSUzQWh0dHAlM0ElMkYlMkZjYS5leGFtcGxlLmNvbSUyRmNhX2NoYWluLmNydA==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwT0NTUCUyMC0lMjBVUkklM0FodHRwJTNBJTJGJTJGb2NzcC5leGFtcGxlLmNvbQ==
X509v3 Key Usage:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRGlnaXRhbCUyMFNpZ25hdHVyZSUyQyUyMEtleSUyMEVuY2lwaGVybWVudA==
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwU3ViamVjdCUyMEFsdGVybmF0aXZlJTIwTmFtZSUzQQ==
DNS:ca.example.com, IP Address:192.168.1.2
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQ1JMJTIwRGlzdHJpYnV0aW9uJTIwUG9pbnRzJTNB
Full Name:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwVVJJJTNBaHR0cCUzQSUyRiUyRmNhLmV4YW1wbGUuY29tJTJGaWNhLmNybA==
Отзыв сертификата
JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUJDJUQwJUI1JUQxJTgwJUQwJUIwJTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQxJTgxJUQwJUJDJUQwJUJFJUQxJTgyJUQxJTgwJUQwJUI4JUQwJUJDJTIwJUQwJUJBJUQwJUIwJUQwJUJBJTIwJUQwJUJFJUQxJTgyJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyLg==
JUQwJTlGJUQxJTgwJUQwJUI4JUQxJTg3JUQwJUI4JUQwJUJEJUQxJThCJTIwJUQwJUJFJUQxJTgyJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwJTVDJUQwJUIwJUQwJUJEJUQwJUJEJUQxJTgzJUQwJUJCJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwLg==
unspecified | Причина неизвестна. |
keyCompromise | Компрометация ключей. |
CACompromise | Компрометация ЦС. |
affiliationChanged | Имя пользователя или другая информация в сертификате изменена, но нет причины полагать, что секретный ключ скомпрометирован. |
superseded | Сертификат заменен другим, но нет причины полагать, что секретный ключ скомпрометирован. |
cessationOfOperation | Сертификат более не нужен для целей, которых он выдавался, но нет причины полагать, что секретный ключ скомпрометирован. |
certificateHold | Действие сертификата приостановлено. |
removeFromCRL | Служебный код для возобновления действия сертификата,действие которого ранее было приостановлено. (CryptoProCA20 Version) |
JUQwJTlFJUQxJTgyJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUI1JUQwJUJDJTIwJUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI1JUQwJUI1JTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJTIwJUQwJUIyJUQwJUI1JUQwJUIxLSVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCMCUyMCVFMiU4MCU5NCVDMiVBMGNhLmV4YW1wbGUuY29tJUMyJUEwJUQxJTgxJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQxJTg3JUQwJUI4JUQwJUJEJUQwJUJFJUQwJUI5JUMyJUEwY2Vzc2F0aW9uT2ZPcGVyYXRpb24u
openssl ca -config openssl-ica.cnf -revoke certs/ca.example.com.crt -crl_reason cessationOfOperation
Using configuration from openssl-ica.cnf
RW50ZXIlMjBwYXNzJTIwcGhyYXNlJTIwZm9yJTIwJTJGb3B0JTJGQ0ElMkZpbnRlcm1lZGlhdGVDQSUyRnByaXZhdGUlMkZpY2Eua2V5JTNB
Revoking Certificate 34F0898AD79A46DEF95EEA10FE651FFC6C8B2040.
RGF0YSUyMEJhc2UlMjBVcGRhdGVk
После отзыва сертификата, необходимо пересоздать CRL.
openssl ca -config openssl-ica.cnf -gencrl -out crl/ica.crl
Выведем информацию о списке отзываю.
b3BlbnNzbCUyMGNybCUyMC1pbiUyMGNybCUyRmljYS5jcmwlMjAtdGV4dCUyMC1ub291dA==
Certificate Revocation List (CRL):
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwVmVyc2lvbiUyMDIlMjAoMHgxKQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2lnbmF0dXJlJTIwQWxnb3JpdGhtJTNBJTIwc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24=
Issuer: O = ABC LLC, CN = ABC LLC Issuing SubCA
Last Update: Oct 6 09:03:51 2023 GMT
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTmV4dCUyMFVwZGF0ZSUzQSUyME5vdiUyMCUyMDUlMjAwOSUzQTAzJTNBNTElMjAyMDIzJTIwR01U
CRL extensions:
X509v3 Authority Key Identifier:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwa2V5aWQlM0FEMCUzQTZCJTNBQTElM0E5NyUzQTBDJTNBRTMlM0E3MCUzQTZFJTNBQTElM0FEQSUzQTkyJTNBREIlM0E0MyUzQTU1JTNBNDQlM0FCNCUzQTRCJTNBNjIlM0FENiUzQUUx
X509v3 CRL Number:
1
UmV2b2tlZCUyMENlcnRpZmljYXRlcyUzQQ==
Serial Number: 34F0898AD79A46DEF95EEA10FE651FFC6C8B2040
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUmV2b2NhdGlvbiUyMERhdGUlM0ElMjBPY3QlMjAlMjA2JTIwMDklM0EwMyUzQTAzJTIwMjAyMyUyMEdNVA==
CRL entry extensions:
X509v3 CRL Reason Code:
Cessation Of Operation
JUQwJTkyJUQwJUI4JUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQwJUJFJUQxJTgyJUQwJUJFJUQwJUI3JUQwJUIyJUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJTIwJUQwJUJFJUQxJTgyJUQwJUJFJUQwJUIxJUQxJTgwJUQwJUIwJUQwJUI2JUQwJUIwJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUIyJTIwJUQxJTgxJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUJDJTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUI1JTIwJUQwJUJFJUQxJTgyJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwJTIwKENSTCkuJTIwJUQwJTlEJUQwJUI1JTIwJUQwJUI3JUQwJUIwJUQwJUIxJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJBJUQwJUIwJUQwJUI2JUQwJUI0JUQxJThCJUQwJUI5JTIwJUQxJTgwJUQwJUIwJUQwJUI3JTIwJUQwJUJGJUQxJTgwJUQwJUI4JTIwJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI4JTIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUIwJTIwJUQwJUJFJUQxJTgyJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwJTIwKENSTCklMjAlRDElODAlRDAlQjAlRDAlQjclRDAlQkMlRDAlQjUlRDElODklRDAlQjAlRDElODIlRDElOEMlMjAlRDAlQjUlRDAlQjMlRDAlQkUlMjAlRDAlQkQlRDAlQjAlMjAlRDAlQjIlRDAlQjUlRDAlQjEtJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI1Lg==
Так же можно проверить статус отозванного сертификата по OCSP ответчику, выполним команду.
openssl ocsp -CAfile /opt/CA/intermediateCA/certs/ca-chain.crt -url http://127.0.0.1:80 -resp_text -issuer /opt/CA/intermediateCA/certs/ica.crt -cert /opt/CA/intermediateCA/certs/ca.example.com.crt
T0NTUCUyMFJlc3BvbnNlJTIwRGF0YSUzQQ==
JTIwJTIwJTIwJTIwT0NTUCUyMFJlc3BvbnNlJTIwU3RhdHVzJTNBJTIwc3VjY2Vzc2Z1bCUyMCgweDAp
JTIwJTIwJTIwJTIwUmVzcG9uc2UlMjBUeXBlJTNBJTIwQmFzaWMlMjBPQ1NQJTIwUmVzcG9uc2U=
Version: 1 (0x0)
Responder Id: O = ABC LLC, CN = ocsp.example.com
JTIwJTIwJTIwJTIwUHJvZHVjZWQlMjBBdCUzQSUyME9jdCUyMCUyMDYlMjAwOSUzQTA1JTNBNDklMjAyMDIzJTIwR01U
Responses:
JTIwJTIwJTIwJTIwQ2VydGlmaWNhdGUlMjBJRCUzQQ==
JTIwJTIwJTIwJTIwJTIwJTIwSGFzaCUyMEFsZ29yaXRobSUzQSUyMHNoYTE=
JTIwJTIwJTIwJTIwJTIwJTIwSXNzdWVyJTIwTmFtZSUyMEhhc2glM0ElMjAzMDk3RTBEOTE0ODMzRTQ4NTdFODM1REUyNDg0RDBDRTUzN0FFQzNE
Issuer Key Hash: D06BA1970CE3706EA1DA92DB435544B44B62D6E1
Serial Number: 34F0898AD79A46DEF95EEA10FE651FFC6C8B2040
Cert Status: revoked
Revocation Time: Oct 6 09:03:03 2023 GMT
Revocation Reason: cessationOfOperation (0x5)
This Update: Oct 6 09:05:49 2023 GMT
Response Extensions:
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwT0NTUCUyME5vbmNlJTNB
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwMDQxMDFEOUI3RkVFQjJFNzBGMzlBRkVENjQ4OUIxRjFBNTc5
Signature Algorithm: sha256WithRSAEncryption
Certificate:
Data:
Version: 3 (0x2)
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2VyaWFsJTIwTnVtYmVyJTNB
31:c8:85:67:3c:af:57:bb:cb:a2:6b:3f:b3:64:95:36:e4:90:93:6b
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwU2lnbmF0dXJlJTIwQWxnb3JpdGhtJTNBJTIwc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24=
Issuer: O=ABC LLC, CN=ABC LLC Issuing SubCA
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwVmFsaWRpdHk=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQmVmb3JlJTNBJTIwT2N0JTIwJTIwNSUyMDIwJTNBMDMlM0EwMSUyMDIwMjMlMjBHTVQ=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwTm90JTIwQWZ0ZXIlMjAlM0ElMjBPY3QlMjAxNCUyMDIwJTNBMDMlM0EwMSUyMDIwMjQlMjBHTVQ=
Subject: O=ABC LLC, CN=ocsp.example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (4096 bit)
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwZXh0ZW5zaW9ucyUzQQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQmFzaWMlMjBDb25zdHJhaW50cyUzQQ==
CA:FALSE
X509v3 Subject Key Identifier:
11:B8:B5:F3:80:50:7C:5A:7A:5E:7F:61:52:9E:BA:42:DA:14:23:69
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwQXV0aG9yaXR5JTIwS2V5JTIwSWRlbnRpZmllciUzQQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwa2V5aWQlM0FEMCUzQTZCJTNBQTElM0E5NyUzQTBDJTNBRTMlM0E3MCUzQTZFJTNBQTElM0FEQSUzQTkyJTNBREIlM0E0MyUzQTU1JTNBNDQlM0FCNCUzQTRCJTNBNjIlM0FENiUzQUUx
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwS2V5JTIwVXNhZ2UlM0ElMjBjcml0aWNhbA==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRGlnaXRhbCUyMFNpZ25hdHVyZQ==
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwWDUwOXYzJTIwRXh0ZW5kZWQlMjBLZXklMjBVc2FnZSUzQSUyMGNyaXRpY2Fs
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwT0NTUCUyMFNpZ25pbmc=
JTIwJTIwJTIwJTIwU2lnbmF0dXJlJTIwQWxnb3JpdGhtJTNBJTIwc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24=
Response verify OK
/opt/CA/intermediateCA/certs/ca.example.com.crt: revoked
This Update: Oct 6 09:05:49 2023 GMT
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUmVhc29uJTNBJTIwY2Vzc2F0aW9uT2ZPcGVyYXRpb24=
JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwUmV2b2NhdGlvbiUyMFRpbWUlM0ElMjBPY3QlMjAlMjA2JTIwMDklM0EwMyUzQTAzJTIwMjAyMyUyMEdNVA==
JUQwJTkyJTIwJUQwJUJFJUQxJTgyJUQwJUIyJUQwJUI1JUQxJTgyJUQwJUI1JTIwJUQwJUJEJUQwJUIwJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJTIwJUQwJUIyJUQwJUI4JUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgyJUQxJTgzJUQxJTgxJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJTIwJUQwJUJFJUQxJTgyJUQwJUJFJUQwJUI3JUQwJUIyJUQwJUIwJUQwJUJEJTJDJTIwJUQxJTgyJUQwJUIwJUQwJUJBJTIwJUQwJUI2JUQwJUI1JTIwJUQwJUIyJUQwJUI4JUQwJUI0JUQwJUJEJUQwJUIwJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQxJTg3JUQwJUI4JUQwJUJEJUQwJUIwJTIwJUQwJUI4JTIwJUQwJUI0JUQwJUIwJUQxJTgyJUQwJUIwJTIwJUQwJUJBJUQwJUJFJUQwJUIzJUQwJUI0JUQwJUIwJTIwJUQwJUIxJUQxJThCJUQwJUJCJTIwJUQwJUJFJUQxJTgxJUQxJTgzJUQxJTg5JUQwJUI1JUQxJTgxJUQxJTgyJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJTIwJUQwJUJFJUQxJTgyJUQwJUI3JUQxJThCJUQwJUIyJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwLg==
JUQwJTkyJTIwJUQxJTgwJUQwJUIwJUQwJUJDJUQwJUJBJUQwJUIwJUQxJTg1JTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgyJUQxJThDJUQwJUI4JTIwJUQwJUJDJUQxJThCJTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQxJTgxJUQwJUJDJUQwJUJFJUQxJTgyJUQxJTgwJUQwJUI1JUQwJUJCJUQwJUI4JTIwJUQwJUJBJUQwJUIwJUQwJUJBJTIwJUQxJTgwJUQwJUIwJUQwJUI3JUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJEJUQxJTgzJUQxJTgyJUQxJThDJTIwJUQwJUI0JUQwJUIyJUQxJTgzJUQxJTg1JTIwJUQxJTgzJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUJEJUQwJUI1JUQwJUIyJUQxJThCJUQwJUI5JTIwJUQwJUE2JUQwJUExJTIwJUQxJTgxJTIwT0NTUCUyMHJlc3BvbmRlci4lMjAlRDAlOTUlRDElODElRDAlQkIlRDAlQjglMjAlRDAlQkElRDElODIlRDAlQkUlMjAlRDElODUlRDAlQkUlRDElODclRDAlQjUlRDElODIlMjAlRDAlQjQlRDAlQkUlRDAlQkYlRDAlQkUlRDAlQkIlRDAlQkQlRDAlQjglRDElODIlRDElOEMlMjAlRDAlQjglRDAlQkIlRDAlQjglMjAlRDAlQkYlRDAlQkUlRDAlQkYlRDElODAlRDAlQjAlRDAlQjIlRDAlQjglRDElODIlRDElOEMlMjAlRDAlQjIlMjAlRDAlQkQlRDAlQjUlRDElODIlRDAlQkUlRDElODclRDAlQkQlRDAlQkUlRDElODElRDElODIlRDAlQjglMjAlRDAlQkMlRDAlQjUlRDAlQkQlRDElOEYlMjAlRDAlQjQlRDAlQkUlRDAlQjElRDElODAlRDAlQkUlMjAlRDAlQkYlRDAlQkUlRDAlQjYlRDAlQjAlRDAlQkIlRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDElOEMlMjAlRDAlQjIlMjAlRDAlQkElRDAlQkUlRDAlQkMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlRDAlQjAlRDElODAlRDAlQjglRDAlQjgu
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.