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

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

SSL-сертификаты играют ключевую роль в обеспечении безопасности веб-сайтов. X.509 — это стандарт ITU, определяющий формат публичных ключевых сертификатов, которые используются в TLS/SSL и являются основой для HTTPS. Сертификат X.509 связывает идентичность с публичным ключом посредством цифровой подписи. Такой сертификат содержит информацию об идентичности (имя хоста, организация и т. д.) и публичный ключ (RSA, DSA, ECDSA, ed25519 и др.). Сертификат может быть подписан Удостоверяющим центром (Certificate Authority) или быть самоподписанным.

Самоподписанные сертификаты

Создание УЦ

  1. Генерация RSA-ключа:
openssl genrsa -aes256 -out ca-key.pem 4096
  1. Генерация публичного сертификата УЦ:
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

Генерация сертификата

  1. Создание RSA-ключа:
openssl genrsa -out cert-key.pem 4096
  1. Создание запроса на подписку сертификата (CSR):
openssl req -new -sha256 -subj "/CN=yourcn" -key cert-key.pem -out cert.csr
  1. Создание файла extfile со всеми альтернативными именами:
echo "subjectAltName=DNS:your-dns.record,IP:257.10.10.1" >> extfile.cnf
# опционально
echo extendedKeyUsage = serverAuth >> extfile.cnf
  1. Создание сертификата:
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)

  1. Выполните (от имени root):
trust anchor --store myCA.crt
  1. Сертификат будет записан в /etc/ca-certificates/trust-source/myCA.p11-kit, и "устаревшие" каталоги будут автоматически обновлены.
  2. Если вы получите ошибку "no configured writable location" или подобную, импортируйте сертификат вручную:
    • Скопируйте сертификат в каталог /etc/ca-certificates/trust-source/anchors.
  3. Затем выполните:
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

Точные шаги могут различаться в зависимости от устройства, но вот обобщенное руководство:

  1. Откройте настройки телефона.
  2. Найдите раздел Шифрование и учетные данные. Обычно он находится в Настройки > Безопасность > Шифрование и учетные данные.
  3. Выберите Установить сертификат.
  4. Выберите Сертификат CA.
  5. Найдите файл сертификата ca.pem на вашей SD-карте/внутренней памяти с помощью файлового менеджера.
  6. Выберите его для загрузки.
  7. Готово!