SSL сертификаты — это просто

SSL-сертификаты играют ключевую роль в обеспечении безопасности веб-сайтов. X.509 — это стандарт ITU, определяющий формат публичных ключевых сертификатов, которые используются в TLS/SSL и являются основой для HTTPS. Сертификат X.509 связывает идентичность с публичным ключом посредством цифровой подписи. Такой сертификат содержит информацию об идентичности (имя хоста, организация и т. д.) и публичный ключ (RSA, DSA, ECDSA, ed25519 и др.). Сертификат может быть подписан Удостоверяющим центром (Certificate Authority) или быть самоподписанным.
Самоподписанные сертификаты
Создание УЦ
- Генерация RSA-ключа:
openssl genrsa -aes256 -out ca-key.pem 4096
- Генерация публичного сертификата УЦ:
openssl req -new -x509 -sha256 -days 365 -key ca-key.pem -out ca.pem
Необязательный шаг: Просмотр содержимого сертификата
Для проверки информации, содержащейся в сертификате, вы можете использовать следующие команды:
openssl x509 -in ca.pem -text
openssl x509 -in ca.pem -purpose -noout -text
Генерация сертификата
- Создание RSA-ключа:
openssl genrsa -out cert-key.pem 4096
- Создание запроса на подписку сертификата (CSR):
openssl req -new -sha256 -subj "/CN=yourcn" -key cert-key.pem -out cert.csr
- Создание файла
extfile
со всеми альтернативными именами:
echo "subjectAltName=DNS:your-dns.record,IP:257.10.10.1" >> extfile.cnf
# опционально
echo extendedKeyUsage = serverAuth >> extfile.cnf
- Создание сертификата:
openssl x509 -req -sha256 -days 365 -in cert.csr -CA ca.pem -CAkey ca-key.pem -out cert.pem -extfile extfile.cnf -CAcreateserial
Форматы сертификатов
Сертификаты X.509 существуют в форматах Base64 PEM (.pem, .crt, .ca-bundle), PKCS#7 (.p7b, .p7s) и бинарных форматах DER (.der, .cer), PKCS#12 (.pfx, .p12).
Конвертация сертификатов
COMMAND | CONVERSION |
---|---|
openssl x509 -outform der -in cert.pem -out cert.der |
PEM to DER |
openssl x509 -inform der -in cert.der -out cert.pem |
DER to PEM |
openssl pkcs12 -in cert.pfx -out cert.pem -nodes |
PFX to PEM |
Проверка сертификатов
Проверка валидности сертификата осуществляется следующей командой:
openssl verify -CAfile ca.pem -verbose cert.pem
Установка сертификата УЦ как доверенного корневого УЦ
На Debian и его производных
- Переместите сертификат УЦ (
ca.pem
) в/usr/local/share/ca-certificates/ca.crt
. - Обновите хранилище сертификатов:
sudo update-ca-certificates
Смотрите документацию здесь и здесь.
На Fedora
- Переместите сертификат УЦ (
ca.pem
) в/etc/pki/ca-trust/source/anchors/ca.pem
или/usr/share/pki/ca-trust-source/anchors/ca.pem
. - Выполните команду (с sudo, если необходимо):
update-ca-trust
Смотрите документацию здесь.
На Arch
Системный уровень – Arch (p11-kit)
- Выполните (от имени root):
trust anchor --store myCA.crt
- Сертификат будет записан в
/etc/ca-certificates/trust-source/myCA.p11-kit
, и "устаревшие" каталоги будут автоматически обновлены. - Если вы получите ошибку "no configured writable location" или подобную, импортируйте сертификат вручную:
- Скопируйте сертификат в каталог
/etc/ca-certificates/trust-source/anchors
.
- Скопируйте сертификат в каталог
- Затем выполните:
update-ca-trust
Страница wiki здесь.
На Windows
Предположим путь к вашему сгенерированному CA-сертификату C:\ca.pem
. Выполните:
Import-Certificate -FilePath "C:\ca.pem" -CertStoreLocation Cert:\LocalMachine\Root
- Установите
-CertStoreLocation
наCert:\CurrentUser\Root
, если вы хотите доверять сертификатам только для текущего пользователя.
ИЛИ
В командной строке выполните:
certutil.exe -addstore root C:\ca.pem
certutil.exe
– это встроенный инструмент (классический изSystem32
), который добавляет сертификат доверия для всей системы.
openssl pkcs12 -export -out rds_cert.pfx -inkey ca.key -in ca.pem
Этот процесс преобразует ваш сертификат в формат PKCS#12 (PFX), который можно использовать для различных целей.
На Android
Точные шаги могут различаться в зависимости от устройства, но вот обобщенное руководство:
- Откройте настройки телефона.
- Найдите раздел
Шифрование и учетные данные
. Обычно он находится вНастройки > Безопасность > Шифрование и учетные данные
. - Выберите
Установить сертификат
. - Выберите
Сертификат CA
. - Найдите файл сертификата
ca.pem
на вашей SD-карте/внутренней памяти с помощью файлового менеджера. - Выберите его для загрузки.
- Готово!