Как это использовать
Короткие примеры для проверки «выгрузки» Роскомнадзора с открепленной подписью. Файл «выгрузки» — dump.xml, открепленной подписи — dump.xml.sig. Даже я проверял их раньше только на целостность подписи, но не на соответствие источнику.
Используя OpenSSL:
Какими бывают ssl-сертификаты
Сертификаты, подписанные центрами, делятся на несколько видов — в зависимости от уровня надежности, того, кто и как их может получить и, соответственно, цены.
Первый называется DV (англ. Domain Validation — проверка домена). Для его получения физическому или юридическому лицу нужно доказать, что они имеют некий контроль над доменом, для которого приобретается сертификат. Проще говоря, что они либо владеют доменом, либо администрируют сайт на нем.
Конвертирование форматов сертификатов
Таблица 2 содержит команды конвертирования SSL-сертификатов из одного формата в другой.
Таблица 2. Команды конвертирования
| Направление | Команда |
|---|---|
| PEM -> DER | openssl x509 -outform der -in certificate.pem -out certificate.der |
| PEM -> P7B | openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer |
| PEM -> PFX | openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt |
| DER -> PEM | openssl x509 -inform der -in certificate.cer -out certificate.pem |
| P7B -> PEM | openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer |
| P7B -> PFX | openssl pkcs7 -print_certs -in certificate.p7b -out certificate.ceropenssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer |
| PFX -> PEM | openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes |
Просмотр содержимого ключей и сертификатов
Мы можем подробно изучить содержимое всех созданных в OpenSSL файлов, а также при необходимости конвертировать их в другие форматы.
В следующих командах используются тестовые файлы со следующими именами:
Обратите внимание на расширения файлов — они могут отличаться от тех, которые используются в других инструкциях. Например, вместо .key и .crt может использоваться расширение .pem. Расширение файла не имеет особого значения кроме как служить подсказкой пользователю, что именно находится в этом файле. Это же самое касается и имён файлов — вы можете выбирать любые имена.
Все эти файлы являются текстовыми:
cat rootCA.key
Там мы увидим примерно следующее:
-----BEGIN PRIVATE KEY----- MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQDJBKkr6XzzAcXD eyDQdvB0SWE2Fl3nqlX/c2RgqMgScXtgidEzOu9ms3Krju5UKLokkQJrZFPMtiIL MuPJFdYjVyfkfnqlZiouBVgJ60s8NQBBI8KnyyAoJCIFdASoW4Kv5C5LT8pX9eRa /huJaRJL5XsFUGnTOLvW2ZLN52iAux9CoZlmH6ZF4nuQpblwN0MHULAhze52VNFT ………………………………………………….. ………………………………………………….. ………………………………………………….. ………………………………………………….. ………………………………………………….. ………………………………………………….. -----END PRIVATE KEY-----
Форматы ssl-сертификаты
Таблица 1 содержит описание часто используемых форматов SSL-сертификатов.
Таблица 1. Форматы SSL-сертификаты
| Формат | Описание |
|---|---|
| PEM | Самый распространенный формат сертификата. Файлы в таком формате имеют расширение .pem, .crt, .cer и .key (файл приватного ключа). Сами по себе файлы являются обычными ASCII-файлами, закодированными в формате Base64. При открытии такого сертификата в текстовом редакторе вы видите строку —BEGIN CERTIFICATE—, после чего следует закодированный сертификат, а после – строка —END CERTIFICATE—. Веб-сервер Apache использует формат PEM. В одном файле может содержаться несколько SSL-сертификатов и даже приватный ключ. В этом случае каждый сертификат отделяется от остальных тегами BEGIN и END. Однако Apache требует, чтобы сертификаты и приватный ключ должны быть в разных файлах. |
| DER | Бинарный тип сертификата – в отличие от PEM, где сертификат хранится в ASCII-файле. Файлы сертификатов в этом формате часто имеют расширение .cer, но можно встретить и расширение .der. Если перед вами файл с расширением .cer, то для вычисления его формата нужно открыть его в текстовом редакторе. Если вы увидите теги начала и окончания сертификата (BEGIN/END), то это формат PEM. Формат DER используется, как правило, на Java-платформах. |
| PKCS # 7 / P7B | Файл сертификата в этом формате хранятся в формате Base64 ASCII и имеют расширение файла .p7b или .p7c. В файлах находятся теги начала и окончания сертификата – “—— BEGIN PKCS7 ——” и “«—— END PKCS7 ——”. Данный формат поддерживается Windows и Java Tomcat. |
| PFX | Бинарный формат, при использовании этого формата в зашифрованном файле хранятся ваш личный сертификат сервера, промежуточные сертификаты центра сертификации, а также закрытый ключ. PFX файлы, как правило, имеют расширение .pfx или .p12. Обычно используется в Windows для импорта и экспорта файлов SSL сертификатов и приватного ключа. |
Шифрование гост
Шифрование ГОСТ поддерживается в LibreSSL не помню с какой версии. Но в Alpine Linux от 3.5 уже поддерживается. С OpenSSL всё сложнее. Шифрование ГОСТ идёт с OpenSSL от версии 1.0.0 до версии 1.0.2 включительно. Но например в CentOS шифрования ГОСТ нет.
Ну и в 2021 году у нас есть Docker, а в Alpine Linux, как я уже упоминал, всё работает.
